Initial Cairo
Cairo paths, also added demo (try `make cairotest`)
Lets drop cairo_{set,get}_user_data closure capturing works better any way
Various:
 * Further work on the path methods on `cairo::Context`
 * Added PathData iterator code (untested)
 * Added `gtk::Widget::get_allocated_{width,height}` and `gtk::Window::set_default_size`
impl Drop for Path, and cleaning up some imports
Moved the path methods of Context from context.rs to paths.rs and fixed PathIteration code
Imported nearly the entire cairo api as ffi functions (cairo_matrix_t and backand specific functions still missing)
Implemented cairo transformations (except matrix stuff)
Smile
Implemented cairo patterns
Fixed spacing
Renamge PathIterator -> PathSegments, forgot some whitespace changes.
Use stack values instead of heap values for out pointers
Implemented Mesh's
Cairo: Added all pattern stuff into context
Added matrices and fonts
Fixed errors and implemented a custom trampoline for signal draw
Partial for rebasing
Merge:
* Remove incorect `impl Drop for GtkWidget`
* Update cairo to new ptr syntax
* Trouble with callbacks, see https://github.com/jeremyletang/rgtk/issues/28
Some last cairo cleanup