Do not allow GTK+ to call setlocale automatically

This can break Lua tonumber() functions and maybe further
categorization.  Note however that assorted other libraries in GNOME
stack do automatically call setlocale() (notably gstreamer and its
plugins).

https://github.com/pavouk/lgi/issues/19
Fix gstreamer automatically calling setlocale()

Continuation of previous setlocale() fix.

https://github.com/pavouk/lgi/issues/19
Add support for cairo mesh patterns

Mesh patterns are new in cairo 1.12 and allow to define quite arbitrary
patterns. For details, see the cairo documentation.

No idea what happens when this is run against older versions of cairo. If this
is important (and the current behavior is bad), some bindings for
cairo_version() should be added.

With this patch, mesh patterns can only be created via
cairo.Pattern.create_mesh(), not via the new cairo.MeshPattern object. Someone
who actually knows what he is doing should do something about this.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Merge pull request #18 from psychon/mesh_pattern

Add support for cairo mesh patterns
cairo: add version checking support

Also guard 1.12-only MeshPattern, because otherwise it segfaults Lua
process when trying to use it on older cairo versions.
cairo: create artificial hierarchy of assorted Pattern classes

The same way as Surfaces, Patterns also form class hierarchy.  Make
this hierarchy visible, hopefully this will make more coherent API.
Fix the mesh pattern tests

Mesh patterns don't inherit from gradient patterns and thus this test failed.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Merge pull request #20 from psychon/fix-tests-cairo1.12

Fix the mesh pattern tests
Fix various errors in the cairo bindings

I went through the list of cairo functions in override/cairo.lua and compared
each one with cairo's source code. This patch fixes the various inconsistencies
and errors that I spotted.

Also, I removed the 'since' attribute for the mesh pattern constructor, because
the all of the mesh patterns already have the right since attribute.

The binding for cairo_recording_surface_create() is still flawed.

There is a special behavior for its second argument being NULL. I don't know how
something like this can be expressed in lgi (it creates a new cairo_rectangle_t
when I call the function with a nil argument, doesn't it?).

Signed-off-by: Uli Schlachter <psychon@znc.in>
Merge pull request #21 from psychon/fix-cairo

Fix various errors in the cairo bindings
record: simplify inherited access functionality

Not only that after recent record handling changes this trickery is
not necessary, it also conflicts with record._attach()
functionality (broke invoking add_color_stop_rgb() on
cairo.GradientPattern instances).
cairo: add support for 1.12 cairo.RecordingSurface.extents attribute

A bit tricky because it uses caller-allocated output together with
phantom-bool return, both of them are not supported by manual ffi, so
Lua-side override was added.
cairo: Fix some more caller-alloc methods and properties cases

This is fallout of ongoing discussion in
https://github.com/pavouk/lgi/pull/21
Gtk: make Gtk-2.0.typelib usable again

https://github.com/pavouk/lgi/issues/22
samples/GDbus/list-system-services.lua: add a sample on GDBus
Minor stylistic adjustments to new GDBus sample
gtk-demo: fix uimanager demo, which assigned the same value to all accelerators
samples/GnomeKeyring/list-keyrings-passwords.lua: add a sample on GnomeKeyring
Handle bad field type gracefuly

... and fix gcc warning
Unbreak loading of shared objects/modules on OpenBSD.