Mono.Cairo updates from Gtk#

For quite some time, Gtk# has had its own cairo binding, mostly a copy of the Mono.Cairo binding.
During the early work to port Gtk# to GTK+ 3.x and friends, this code has been updated by Mike Kestner to accommodate the new APIs.

I think the original idea was to have a full binding of the cairo 1.10 API, but I'm not sure it was really finished, and a lot of the API additions don't seem to be used by Gtk#.
You can see the full history here:
https://github.com/mono/gtk-sharp/commits/master/cairo

This pull request just brings the minimum changes necessary for Gtk# 3.x to use Mono.Cairo again. The main addition is the Region class. There's also a few API additions on existing types, and some bugfixes.
The Region class is the only change that requires cairo 1.10.