Dispose text block resources. See #649.
Experiment with disposing resources in finalizers
Revert "Experiment with disposing resources in finalizers"

This reverts commit 10690081b920f8526e585549c4a38998daccd9a6.
add download specs
Wrap Swt::TextLayout use in FittedTextLayout

In preparation for disposing of all the SWT resources properly for the
text blocks, centralize access to the TextLayout class in our already
existing wrapper class, FittedTextLayout
Wire up disposing of layouts

When we're either resetting the fitting on layouts at alignment time, or
if we're removing the widget entirely, make sure to dispose of the
underlying SWT layout elements.
Push FittedTextLayout a layer higher

Shoes::Swt::TextBlock needs to create fonts, so make sure that it has
the FittedTextLayout around (or can) so we can do the resource tracking.
Track SWT resources on FittedTextLayout to dispose

The FittedTextLayout is now responsible for holding onto the
Swt::Layout, Swt::Font and Swt::Color objects that get generated by it,
and will dispose of them when either being superceded by a later text
fitt, or when the text element is being removed/replaced entirely.
Dispose of TextBlock font resources
Dispose of TextBlock color resources
Add #dispose, with implementation for TextBlock

As part of the Common::Clear module, there is now a dispose hook. In the
ordinary case, the method doesn't do anything, but it's now a lifecycle
event. Now, any class that creates Swt resources which must be disposed
can override #dispose and do what they need to do, like TextBlock in
this commit.
Merge from master
First somewhat working extraction of a Dimension class

* there aren't specs for all behaviors in place yet
* big task of wiring it up still left out
More advanced extent specs
real start_as_center support
Forgot some small specs
second go at download specs
Move to ? methods return a real boolean
RenamedDelegate - delegate methods but rename them

* to get the magic of left calling x_dimension.start going
* will probably go and put it into its own gem... might be
  be useful for someone somewhere
Clear list after disposing