Toggle/show/hide support for all elements

Initial commit demonstrates the approach I'm planning to take for getting `toggle` supported across all elements to resolve issue #206.

Two major pieces to the change:

1) The `Slot` ignores `hidden?` elements in its positioning loop. This neatly handles the whole conversation about `width`/`height` since element values can be left without impacting positioning.
2) The backend classes must be aware of the element visibility. Shapes (rect, oval, etc) already did this and `TextBlock` is similar to those with its `TextBlockPainter` class. Other elements (like `SwtButton`) will be different, often just passing visibility to the underlying UI widget.

I'll also fold in the specs from the issue thread before I'm done, but most of the heavy work seems to be between the DSL and the different backend types, so I'm focusing there first.

Does this seem like a reasonable approach? Any big potholes I'm missing?