refs #762, Create a CollectionData class that is used in Collection, and have individual Collection types subclass of CollectionData
refs #762, Create an IndexDetailsBase class and slim down IndexDetails. Idea is that CollectionBase knows it has
an array of IndexDetailsBase, but outsiders can only get an IndexDetails from the Collection. Now, we can
easily subclass IndexDetails for partitioned collections.

getCursor and getKeyAfterBytes are not ideal, and could probably be better. Hacked them up to get moving.

cleanup some signatures
refs #762, Make a PartitionedCollection and PartitionedCursor (that only runs on the partition/primary key)
no support for secondary indexes, fast updates, or bulk loading.

Still need to:
 - (possibly) implement replication
refs #762, Some replication simplifications in preparation for making the oplog partitioned.
 - Removed cached Collection pointers in oplog.cpp
 - changed how initial sync clones the oplog collections
refs #762, remove optimize oplog thread and purge thread
refs #762, get partitioned oplog working, no automatic trimming working yet
refs #762, remove code that checked if oplog data is too old. With partitioned oplog, it is not necessary
refs #762, add commands (and tests) for replAddPartition and replTrimOplog
refs #762, add a background thread that does auto-adding and auto-dropping
of partitions for oplog and oplog.refs
refs #762, remove _lastPurgedGTID and _lastPurgedTS
remove remnants of lastPurgedGTID and lastPurgedTS from heartbeats.

With partitioned collections, we don't care about this data

remove some TODOs
refs #762, remove partition comment
refs #762,
 - disable renaming
 - get convertToPartitioned working
 - support upgrade of non-partitioned oplog and oplog.refs to partitioned
refs #762, fix bug
refs #762, disable replication of partitioned collections
refs #762, fix bug in writing oplog stuff to secondaries
refs #762, add simple test that shows cloning of oplog works
add test showing partitioned collections don't work in replication
refs #762, Fix issues from getFanout change post-merge
refs #762, Fix miscellaneous tests
fix a bug with respect to dropping an index.
fix bug in reserializing collections on open, need to set the pk before we do the reserialize
refs #762, Allow for the admin db and local db to be nestedly locked together
Do not make a write lock on the admin be a global write lock
refs #903 remove DB_LEVEL_LOCKING_ENABLED