Major changes to Form:
- Form.attributes is gone. Replaced by Form.attribute, which takes
  the attribute name and the type user input should be cooerced to.
  Fixes #333.
- Abandon ActiveModel interface for `#initialize`. Forms now take
  a model instance as the only argument. We didn't use the AM
  interface anywhere in the code and made it possible for Forms
  to be incorrectly initialized, i.e. without a model instance.
- Promote `#target` to public method in all Form subclasses, it
  shouldn't have been private anyway.
Merge pull request #336 from ministryofjustice/enhancement/virtus

Replace custom form implementation with Virtus (WIP)