check if we need to explicitly link with a libiconv library

This is also careful to check whether locale_charset() is available
in the case that we are explicitly linking to libiconv otherwise
since it may not be enough to just check for the localcharset.h header.
Update Cogl description in README.in
update cogl.doap
Remove some leftover references to Clutter

Since it's not possible to build Clutter against Cogl master it doesn't
make sense to have any Clutter specific code.
sdl2: fix GL driver selection

SDL2 supports selecting between full OpenGL or OpenGL ES 1/2 but our
selection code was written before SDL 2.0 was officially released and
since then a new SDL_GL_CONTEXT_PROFILE_MASK attribute was added and
we have to explicitly set the SDL_GL_CONTEXT_MINOR_VERSION attribute.
Enable building without gtk-doc, e.g. on OSX
basic-video-player: don't try and sample mipmap

Since we don't generate a mipmap chain for uploaded video frames this
avoids setting the min filter to COGL_PIPELINE_FILTER_LINEAR_MIPMAP_LINEAR.

Since COGL_PIPELINE_FILTER_LINEAR is the default and since it is also
dubious that cogl-basic-video-player is directly manipulating layers
that are conceptually internal to cogl-gst this removes the loop that
updates the filtering for cogl-gst layers.
cogl-gst: add cogl_gst_video_sink_get_natural_size() api

This adds api for querying a "natural" width and height for a video
which has the correct aspect ratio for displaying on square, 1:1 pixels.

The natural size is the minimum size where downscaling is not required.
framebuffer: update docs for _get_depth_texture()

This clarifies in the documentation for
cogl_framebuffer_get_depth_texture() that if a depth texture is added as
a layer to a pipeline and sampled then depth values should be read from
the red component and that all other components are undefined.

It depends on the version of OpenGL, and what profile is selected
whether sampling depth textures behaves like sampling a luminance
texture (L,L,L,1) or a component red texture (R,0,0,1).

In particular I was caught out by this issue in Rig where we were
referencing the .z component of shadow map textures, and this had worked
ok until updating to a recent version of mesa which has updated its
behaviour. The relevant mesa commit is: 678ac190a5a6fd39b8568587fac28

Reading the mailing list discussion that happened around that patch it
looks like Kenneth Graunke investigated the different variations so for
posterity it could be handy note them here:

Apparently it works like this:
- Core: RED
- Forward Compatible: RED
- Compatibility or <= 3.0: LUMINANCE
- ES2 with OES_depth_texture: LUMINANCE
- ES3 for unsized formats: RED
- ES3 for sized formats: LUMINANCE
bitmap-conversion: Avoid using _COGL_GET_CONTEXT()
blend-string: Expose internal test code as unit test

There was some internal testing code lying unused in
cogl-blending-string.c so this adapts it into a unit test.
blend-string: Avoid using _COGL_GET_CONTEXT

Although this just moves the _GET_CONTEXT() into the cogl-pipeline code,
it means we have one less component in cogl depending on a global
context. CoglPipeline is one of the only remaining components that
heavily depends on a global context and will probably be the last
component we tackle.
texture-pixmap-x11: avoid depending on _GET_CONTEXT

This updates cogl-texture-pixmap-x11.c so it no longer depends on a
global CoglContext. This also avoids depending on the deprecated
cogl_xlib_ api that depends on COGL_GET_CONTEXT() in favour of the
cogl_xlib_renderer_ API.
xlib: remove deprecated apis

This removes some deprecated cogl_xlib_ code that depends on a global
CoglContext. Note: we keep cogl-xlib.h as a top-level header for xlib
specific apis. Since we now have no longer include cogl-xlib.h
internally this slightly simplifies the guarding inside the header to
trigger an error from now on if the header is use internally, as we do
for cogl.h.
bitmap: avoid unsigned int

We generally avoid using the unsigned int C type in the Cogl api due to
the trouble that it can lead to due to C's implicit casting rules.
texture: make some texture vfuncs optional

This makes some of the texture vfuncs optional to simplify adding new
texture types.
Remove OpenGL ES 1.1 support

We haven't depended on OpenGL ES 1.1 support for years now and if we can
remove the need to support GL's legacy fixed function apis then we may
simplify some parts of Cogl.
Remove ARBfp support

For simplicity we would like to only support GLSL based progends even
though it's still quite possible that the ARBfp backend may be slightly
faster in some cases.
Remove support for GL's legacy fixed function apis

This removes the GL fixed function vertend, fragend and progend since we
don't have any need to support non programmable GPUs and since it
reduces the number of code paths we maintain.

This adds "nop" backends so that for now, we continue to keep support
internally for selecting pipeline backends at runtime.