Eliminate the use of singleton classes on CPK relations.

Previously, CPK overrode ActiveRecord::Relation on creation and
injected a singleton class into the object hierarchy, which caused the
relation (and the model holding it) to be undumpable.

I've moved the overridden methods into their own class, and overrode
ActiveRecord::Relation#new to act as a factory method, returning either
an ActiveRecord::Relation or a CompositePrimaryKeys::CompositeRelation
as needed.