Split AssociationProxy into Association class (and subclasses)

which manage the association and CollectionProxy which is *only* a
proxy. Singular associations no longer have a proxy.

This mirrors
https://github.com/rails/rails/commit/1644663ba7f678d178deab2bf1629dc05626f85b

and brings the ActiveFedora associations closer to ActiveRecord 3.1