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.
This is a memory leak since the passed C strings are not owned by the FileChooserDialog.  You will need to define variables for each and C.free(unsafe.Pointer(cstr)) them before returning, both here and in the other New func below.