Tightly integrate ulib (was eglib)

Instead of maintaining optional support for using deps/eglib instead of
glib we now always use this code. This way the code is always being
tested so we are less likely to break support for building Cogl without
glib, and because the api no longer needs to be swappable we are free to
make Cogl specific changes to the api.

So that we can still support glib integration the eglib library has been
renamed to ulib and symbols are prefixed with 'u_' or 'U_' so that they
don't clash with glib.

GLib integration for GError and GType continues to be supported.
build: split out list of deps into Makefile.sources

This splits out the list of build dependencies for Cogl into a
Makefile.sources file that could be shared with other build systems.
configure: check for sdl2-rig instead of sdl2 pkg-config file

Rig uses a patched version of SDL maintained at:
https://github.com/rig-project/sdl.git
sdl2: Add android support

This adds Android support to the SDL2 winsys. Unlike some other window
systems, Android's SDL2 backend only allows you to create one window.
Since the Cogl SDL2 winsys creates a "dummy" window when setting up the
display (so we have something to bind a GL context to) it wasn't then
possible to create a CoglOnscreen framebuffer for rendering. This
updates the winsys so that the first CoglOnscreen framebuffer created
will actually refer to the dummy window we created earlier.

Note: it doesn't matter that we request the dummy window to have a 1x1
size, and request for it to be hidden because these are overridden by
SDL's Android backend.
examples: Add a new SDL2 based Android example

This adds another examples/android project that uses SDL instead of
glib. The example itself is a copy of examples/cogl-sdl2-hello.c
which includes basic input handling to move a triangle around the
screen.
Adds CoglAtlasSet and CoglAtlas apis

This enables applications to more closely manage their own texture atlases
via a CoglAtlasSet api. A CoglAtlasSet represents a set of CoglAtlases
and a CoglAtlas represents one large texture that is subdivided into
smaller "allocations".

The intention is to enable functionality like cogl-pango to be
implemented outside of Cogl; specifically to allow Rig to handle its own
glyph caches for text rendering.
Enable building without gtk-doc, e.g. on OSX
check if we need to explicitly link with a libiconv library