Make sure each attribute is only tracked once

When inheriting and adding attributes (include attributes.add(...)),
previously declared attributes would be tracked inside
self.class.attributes twice. This is not a huge problem, but it makes
introspection, and hence pretty-printing, messy.

This commit uniquefies the attribute names.
Fix around hooks, adding second env argument; make Mapper Callable

The pipeline interface has changed to #call(object, env), the lambdas
generated by an around hook weren't accepting the rack env.

Include FP::Callable in Mapper so mapper instances can be treated as procs.
Prepare v0.7.4
Alias rake push_all to rake push
Make Yaks::Undefined look like "Undefined" when inspected, instead of #<Object...>
Add link :foo, ..., :replace => true, to replace earlier links with same rel
Bump version to 0.7.5
Store latest changelog text in the gems metadata
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
Simplify the logic for resolving callables, allow all `to_proc`-ables

For cases where we allow a lambda for dynamic content, we should accept
everything that responds to :to_proc. We exclude symbols because that
would break existing syntax.
Prepare v0.7.6
Mention Attributes#pp in the Changelog
Add "State of development" stanza to README