Allow action to be specified in DSL

* Move all defaulting into DSL
* Move Label creation up into Form, and let Inputs fill with Label
  values (to_str mostly handles this)
* Add actual specs for DSL rather than respond_to checks