Initial commit of relative dimensions support

This will resolve issue #380. The Dimensions class needs an update to draw the
width and/or height from the parent, which now needs to be passed in to work
properly.

For the time being I've chosen to make it graceful if an object doesn't pass
the parent, but this might not be necessary once all the DSL elements properly
support the parent.
resolved merge from master
Merge pull request #1 from PragTob/jasonrclark-relative_dimensions

Merge in master branch
Shared examples for dimensioning
Apply shared dimensions spec throughout DSL
Potential fix for Shoes::CheckButton dimensions

Turns out that both Shoes::Button and Shoes::CheckButton derive from SwtButton, but
only Shoes::Button's DSL was being allowed to set widths appropriately here.
Further dimension additions
Don't type-check in SwtButton
Fix for relative dimensions on star
Merge resolved
left --> left_or_hash (which is what it really is)
parent as required argument for Dimensions
Fix manual/tankspank - problem with missing SlotContetns methods
Merge branch 'master' into jasonrclark-relative_dimensions
Element#remove spec

* partially from master but I needed the parent to be in place
  for an easy spec =)
relative dimensions dynamically adapting to the parent
No relative dimensions for absolutely positioned elements (e.g. Art aka rect, oval, etc.)

* it totally messed up expert-tankspank (shots/shells were gigantic)
* it also seems to be the shoes3 behaviour although I find it to be
  slightly inconsistent
Fixing button app to really take dimensions into account
Merge remote-tracking branch 'upstream/master'
Fix for button sizing #452

Turns out that the placement of where the dimensioning was in relation to
the yield(@real) was important. This is because the yield sets the button text
and that in turn influences its width. Setting the size before the yield just
gets whatever button size is out of the box with an empty string.