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
Yeah, it's basically a verifying double: https://github.com/rspec/rspec-mocks/blob/b53f2bed254898674c689d8d45465cdd9e0d4cb0/lib/rspec/mocks/example_methods.rb#L62-L69