Add axiom-types gem dependency
[wip] nuke most of the attribute subclasses and type lookup extension
[wip] turn EV into an Axiom::Types::Object subclass
tmp
Merge branch 'master' into axiom-types-integration

Conflicts:
	lib/virtus/attribute.rb
Update Gemfile
Fix Collection, Hash and Boolean superclass
Extend Attribute with Options module
Add missing require
Nuke unit specs
Update Guardfile
Add specs for Attribute.build
Add back Attribute#{set,get}
[WIP] Replace accessor/writer/reader with simple module extensions

That design turned out to be an overkill that introduced significant
complexity without much benefits.

This commit brings Virtus back to its design in 0.5.x with two
important changes:

  - attribute name is now *optional* (which means you can build an
    attribute instance just to use it for coercions where name is not
    needed)
  - attribute's type is now an instance of an axiom type object

Further refactoring will replace coercible writers with
Attribute#coerce.
[WIP] Update Attribute::Hash to use axiom types
[WIP] Update Attribute::Collection to use axiom types
Add Attribute#coerce
Re-add support for member, key and value type coercions
Remove collection/hash coercible writers
Re-add embedded value with Virtus and OpenStruct support