Refactored the reader method/visibility methods out of Attrio::Attribute.

I used Attrio::AttributeBase as the module name for the shared methods,
but I'm not happy with that name and when I come up with a better name,
I'll rename it.

I left the writer methods in Attrio::Attribute since only Attribute is
going to use those methods.  Factoring those into another module is
something to keep in mind.
First pass at Attrio::Collection classes: Array, Set, and Hash.

I used the DelgateClass as the basis for inheritence because it offers
an easy way to wrap and extend classes while delgating all other calls
to the original class.

Specs are very simple, just testing creation and that they are acting a
little like their delgate.