Initial libweston implementation

The approach taken here is to move all the stuff that belongs in a binary,
such as the main(), module and backend loading, config handling, to
a weston.c/h, keeping the behavior untouched.
All .so modules include weston.h, so they cannot be directly used by other
users of libweston, instead the modules provide a .h which are to be called
by the compositors using libweston directly, or by plugins of them.
All the config handling (weston_config, weston_option, ..) is weston-specific,
so weston_compositor does not hold a weston_config pointer anymore. Instead,
the config is passed to each module on creation.