First major groundwork (spike) for form controls/actions

This relies on some refactoring that's already on master, notably the
Configurable module which makes the declaration of DSL's easier, and the
Attributes module, which extends Anima/Anima::Update/Anima::Defaults to
provide single functional read/write functions.

Note that Anima::Defaults isn't merged into Anima yet, it is currently
included here as AttributeDefaults.

In general I'm making a move towards making the various immutable
objects in Yaks behave in a uniform way. This means so far

- Constructor takes hash
- update(hsh) returns a new updated instance
- attribute methods can either read (no arg) or return an updated
  instance (with arg)
- ==, eql?, equal?, all the Anima and Equalizer stuff
- Foo.create is a factory method that reflects how the object is created
  in the DSL, e.g. Link.new uses a hash, but link 'rel', 'href' uses
  positional args, so Link.create uses positional args

Tentative DSL

    class FooMapper < Yaks::Mapper
      control :add_user do
        href       '/add_user'
        title      'Add a new user'
        method     'POST'
        media_type 'application/json'

        # Here I need to do some more comparing of what info we need
        # about a field.
        field :name
        field :age
      end
    end

Initially I'm aiming to add form controls that mimic HTML forms,
i.e. with discrete elements of certain types. Most likely candidate for
submitting these back would be application/x-www-form-urlencoded. Some
media types offer a template instead, either with a full templating
language, or as an example JSON object. We'll consider these later if at all.
Fix support for Ruby 1.9, don't use Module#prepend
Implement Control#add_to_resource

Also contains a shitton of refactoring, including merging Attributes and
AttributeDefaults, and dropping the exceptional "subresources" behavior
for CollectionResource.
Mixed bag

- Add initial implementation of the Halo format (untested)
- Bring mutation back to 100% (excluding Yaks::Format::Halo which isn't
  loaded yet, and Yaks::Format::HTML, which is in a separate gem)
- Finishing touches on the form controls implementation
- Some more refactoring, especially regarding Yaks::Attributes
Start an org file to compare specific aspects of various formats, in this case especially: form controls/actions
Merge pull request #29 from plexus/introduce_form_controls

First major groundwork (spike) for form controls/actions