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
I was just trying to keep it at the three most recent versions. There shouldn't be any incompatibilities.