Adding a bunch of functions my app needs

Several cairo functions to create an image, draw on it, and save it to a file (plus example of doing that)

Some GTK odds & ends, in particular enough to have a GtkDrawingArea which responds to mouse events

I haven't done the full APIs, just what I've needed so far, and I will probably be needing more (and thus adding more) shortly; sending a pull request now so that you can tell me if I'm doing anything stupid before I do too much work :)

Even though it's incomplete, it would be nice to merge what's there as my GTK patches require the GDK patches, and having them upstream is cleaner than rewriting all the import statements.
There's another PR containing this implementation that handles the return value; it looked pretty trivial. They basically just threw a generic error if the status wasn't OK. Probably not the best, but it's a step up. You should at least provide an error return value in the function signature to avoid breaking the API when proper status handling is added.