Enhancements en route to supporting ImageView 

This is a set of changes I've made in the process of putting together a Gtk branch of ImageView. There will be more Gtk changes needed, but I was curious to see the reaction to these changes, and whether any of them are moving in the wrong direction.

You can see the corresponding changes in ImageView in the new `gtk` branch. In conjunction with this PR (and a recent change to Winston master), there's quite a bit already working: basic image display, rubberband zooming, panning and zooming with the mouse wheel, modifier keys. There's also quite a lot that is not (yet): navigation buttons and their associated icons, keybindings, file selector dialogs.

 Things coming up on the horizon:
 
- Since it looks like object can have names, I'd be interested in a "tree-traversal" function that lets you find an object by its name. I don't see that this exists in Gtk proper, so we might have to write it in Julia?
- Gtk.jl exports `configure` but it isn't defined. Is it even needed?
- When resizing or selecting with a rubberband, there is a white "flicker". Can this be eliminated? I've checked, and there's only a single call to my redraw/resize functions, so it seems that this is _not_ a case of redundant function calls. Presumably there's a double-buffer failure? The flicker also suggests that the whole canvas is being updated, but during rubberband selection presumably just the Cairo path needs to be redrawn; it would be interesting to know if that's even possible in Gtk.