Mono.Cairo improvements

* Clean up ownership and disposal to fix leaks
* Make Dispose implementations consistent
* Add mechanism for debugging missing Dispose calls
* API updates
* Minor bugfixes