Improve compiling rigidity

This (hopefully) makes it possible to pack LavaLauncher on distributions
with slightly more paranoid compiler defaults.
Accept colours without alpha channel
Set opaque region
Implement touch handlers

Not yet tested, as I lack a toch-device.
Replace external pool-buffer.c with own shm implementation
Fix margin bug

LavaLauncher always creates surfaces spanning the entire width of the
outputs edge it is docked to. To prevent moving the surface outside the
boundaries of the output, only the margins not parallel to that length
are "real" layer shell surfaces. The margins parallel to that length are
simply "faked" by adjusting the x and y offsets of the draw code.
Execute upon button release

Execute the command only when the mouse button has been released on
the bar button it has been pressed on.
Add configure_surface()

This function is called when creating and configuring a surface.
Move create_bar() to a more appropriate place

And generally clean up the startup code.
count_arguments() -> check_arguments()

Moved the testing and error messages inside the function and renamed it
to reflect the changes.
Update documentation
Directional margins
Set input region

This prevents the unused parts of the surface in default mode from
receiving pointer events.
Better example in manpage
Refactor draw code

The new drawing is slightly more opinionated (the surface will now always span
the entire width of the output-edge) and the bar can no longer be placed in the
center. Added aliment configuration via '-a' and configuration of individual
border sizes. Massively improves readability by reducing complexity. No more
Add build/ to .gitignore
Improve command flag parsing

Now counts arguments for '-b' and exits with error if not exactly two arguments