Initial work to move align and expand properties to the Widget class
Initial work to simplify the size negotiation model

Instead of having GetPreferredWidth/Height pairs
we now have a single GetPreferredSize method
which can take constraints as parameter.
Ongoing work to simplify de size negotiation model

Done the required changes in the GTK backend.
Api adjustments.
[Mac] Track api changes in size negotiation model
The default value of SizeContraint is now "unconstrained"
Fix table layout issue
Fix some issues in custom widget backend. Fix typo.
Merge branch 'custom-align' into desired-size
More changes to move expansion and alignment properties to Widget
Widget margin is now handled by containers
Fix Placement size calculation
Margin is not included in the widget size anymore
Don't reset the window position if it has already been shown
[Mac] Fix size calculation issues when using margins
Fix size calculation issue

Widgets that require a size calculation were stored in order of
depth, since the calculation has to be done bottom-up. However,
this was not being properly done since the depth registered when
the resize request was made may have changed when the calculation
is done. Now, the widgets are ordered by depth just before doing
the size calculation.
Fixe size calculation of Placement

The padding must always be included in the preferred size, even
if there is no child widget
[Mac] More size calculation fixes

ResetFittingSize now sets a flag instead of doing the size
calculation, which is now delayed until the size is requested.
Removed some hacks to support widget margins which are not
required anymore
[Mac] Fix resizing issues in Expander
Remove unused SizeRequestMode enum
Layout api improvements

Renamed WidgetAlignment to WidgetPlacement.
Added new overloads to Box and Table.
Track api changes in the samples.