Implement collection views.

I love the collection views API, and need it on `TypeMap` for one of my projects.

r+?
unsafe-any supports unchecked `Box<Any>` downcasting, which should be used here.