added manual calls to Dispose() - the destructor DOESN'T seem to do that. AAAAAARGH!

without this, you get this STDOUT output at application shutdown...:

Cairo.Pattern is leaking, programmer is missing a call to Dispose Allocated from:
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at Cairo.CairoDebug.OnAllocated(IntPtr obj)
   at Cairo.Pattern..ctor(IntPtr handle, Boolean owned)
   at Cairo.Gradient..ctor(IntPtr handle, Boolean owned)
   at Cairo.LinearGradient..ctor(Double x0, Double y0, Double x1, Double y1)
   at Docking.DockItemContainer.createGradient(Double x1, Double y1, Double x2, Double y2, Color c) in d:\Projects\TempoGiusto\external\DockingFramework\Docking\Monodevelop.Docking\DockItemContainer.cs:line 242
   at Docking.DockItemContainer.DrawFocus(Window window, Color c) in d:\Projects\TempoGiusto\external\DockingFramework\Docking\Monodevelop.Docking\DockItemContainer.cs:line 228
   at Docking.DockItemContainer.OnExposeEvent(EventExpose evnt) in d:\Projects\TempoGiusto\external\DockingFramework\Docking\Monodevelop.Docking\DockItemContainer.cs:line 174
   at Gtk.Widget.exposeevent_cb(IntPtr widget, IntPtr evnt)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()

Change-Id: I80db854e8053a131b6b958693922c0a172332afd