Rewrite the DSL mechanism

This unifies the class-level DSL mechanism (Yaks::Mapper, configured
through inheritance), and the instance-level configuration,
e.g. Yaks::Config, or Yaks::Mapper::Form. The Configurable module
replaces the previous DSL, and allows deleting a bunch of code.

Yaks::Attributes-based classes no longer have the arity-checked combined
getter/setter. Instead of Foo.new.foo(3) write Foo.new.with_foo(3), or
with(foo: 3).
Make Form class-based instead of instance based

Use the same pattern for Form that Mapper uses, i.e. having a separate
Config, and a DSL that updates the Config. This means that
Mapper::Config#forms now contains form classes, instead of
instances. Forms can now be created through subclassing, although the
Form.create form still works as before, so there is backwards
compatibility.

StatefulBuilder has been renamed to Builder.
Drop `form FormClass` in favor of `append_to(:forms, FormClass)`

Before and "create" style DSL method, like form or link, could either
take the arguments that would get passed to Form.create / Link.create,
or an actual Form/Link object. This is messy and led to issues.

Instead the mapper DSL is exposing append_to on the config object for
explicitly appending an object to the right list.
Add Yaks::Attributes#remove, analogues to #add and Anima#remove
Support for dynamic form blocks

This is still a bit messy, but Should Work™. Side note: maybe the Forms
are fine as they were, instance instead of class based.