Introduce abstraction for collection types.

Perhaps over-engineering but want to centralize logic for reasoning about what kinds of collections are subcollections of other types, etc....
Models: Add mapping allowing HDCA to hide HDAs under it.

I see two options...

TODO Fill out this changset message.
Rebase into model basics.
Hide HDAs behind HDCAs as they are created.
collection_type_description fixes (clean up).