[WPF] Fix canvas rendering issue

Render the canvas before calling base. This fixes rendering issues on
child widgets.
[WPF] Fix size constraint conversion bug
[WPF] Fix crash in desired size calculation

When exiting user code, don't run the queued actions if an exit callback
has been registered. This avoids running the actions too early. It fixes
a crash in WPF, caused by calling MeasureOverride in an unsupported sequence.
Remove duplicated files from project file
Run container tests for Expander
[Mac] Widget placement fixes

Fixed some issues with placement of children.
[Gtk] Fix a Cairo.LinearGradient leak
Update ReliefFrame and fix gradient surface leaks
Fix image surface memory leak
Improve disposal of resources

Backends can now opt-in to automatic disposal of resources in the
UI thread.
Dispose tookit backends when disposing the main App
[Gtk] Dispose Cairo resources in the UI thread
Fix some ScrollView issues

Allocate the ScrollView child after the child size has been set. This is
necessary sine Reallocate relies on the actual child size to allocate
its own children.

Also fixed allocation issue in the mac backend.
Added some logging to help debugging allocation bugs
Fix SizeConstraint.ToString
[Gtk] Fix leaked ImageSurface
Throw a more meaningful exception when starting a drag without a drag image set

Previously, it threw an NRE, which doesn't tell you what's actually wrong.
Add Desktop.MouseLocation API with Gtk, Mac and WPF implementations
[WPF] Fix build
Remove ReliefFrame