Introduce Document.
Expose document through DSL module.
Test DSL#widget.
Make Widgets namespace more easily accessible.
Expose root selector at the Widget class level.
Allow documents to answer whether widgets exist or not.
Expose `#has_widget?` through DSL.
Document document.
Extract some behavior into WidgetContainer module.
[features] Reset sinatra actions between scenarios.
Change how sub-widgets are constructed.
Don't use an options hash in widget/action macros.