Rename Mapper::Control#href to action, in line with HTML forms
Introduce short form aliases for form controls

This allows you to write `text :foo` instead of `field :foo, type: "text"`
Always use mutant from master, little reason not to
Make all Attributes based classes pp-able, make pp round-trip

Before we already had Resource#pp to get a nicely indented
representation of a Resource and its parts. By lifting this up to
Attributes it now becomes available in all Attributes based classes (all
data objects in Yaks).

The implementation of pp has also changed a little bit so the output can
be evaluated again to reconstruct the value. Great for testing and debugging!
Make sure Yaks::Changelog can be used without requiring yaks

Preferably we don't load the whole of Yaks in the gemspec, this makes
Yaks::Changelog self contained
Expand the Form Controls API to be more complete

The goal with `control' is to mimic the HTML5 form API. This commit adds
aliases for most input types, so you can write

    class Foo < Mapper
      control :bar do
        checkbox :box, value: 'xyz'
      end
    end

instead of

    class Foo < Mapper
      control :bar do
        input :box, type: 'checkbox', value: 'xyz'
      end
    end

It also adds a Control::Field::Option for holding this

    class Foo < Mapper
      contro :bar do
        select :sel do
          option :o1, value: 'foo', selected: true
          option :o2, value: 'bar'
        end
      end
    end
BREAKING: drop symbol support for links in favor of lambda

Before instead of a link template we would allow a lambda (callable)
that returns a fully generated URI, but also a symbol, which would be
treated as a method name to be looked up like an object attribute, so
either as a method on the object or as a method on the mapper. (Or
something else if load_attribute was overridden).

This commit drops the latter option. Instead of

    link :foo, :bar

Use

    link :foo, -> { load_attribute(:bar) }

Although usually you would just use

    link :foo, -> { object.bar } # load directly from the object

or

    link :foo, -> { bar } # mapper has a bar method
whitespace/comment