Moving the base of the collection code out of 'bson'
Massive refactor of collection library.