:c_as, collections hash, reset, initialization of collection

We prefer :c_as, but will use :collections_as if present

attrio.rb changed to include collection hash and methods

added AttributesParser#add_collection

refactored collection to use #add_collection

Extended Reset to have a #define_attrio_collection_reset method that
defines :reset_collections, :initialize_collections, :empty_collections
all of which call a method on each collection

Extended CollectionBuilder to delegate to reset_collection,
empty_collection, and initialize_collection on the object.  Refactored
calls into a set_delegate and define_delegate methods

Extended Collection to have methods for _name and _visibility methods
for reset, empty and initialize collections.  This is ripe for a
refactor, maybe setting up method_missing and crunching the bits into a
Constant hash using the keys as the base and a string format as the
value

Refactored Array, Set, and Hash to use __mk_empty_collection__ in
initialize and empty_collection methods

Refactored the type check into #__normalize_value__ method that handles
calls for default values and type_cast everything else.

Extended Inspect to include collections

replaced all mocks with doubles
replaced all stubs with doubles

cleaned up a few TODOs