KVRecordStore: use WriteUnitOfWorks when dealing with metadata dict
KVSortedDataImpl: added WriteUnitOfWork around builder

This probably means the c++ tests are broken though?
Merge branch 'kv_dictionary' into tokuft
Merge remote-tracking branch 'upstream/master' into kv_dictionary
fixed assert ids
Merge branch 'kv_dictionary' into tokuft
Merge remote-tracking branch 'esmet/kv_dictionary' into kv_dictionary

Conflicts:
	src/mongo/db/storage/kv/dictionary/kv_record_store.cpp
fixed assert ids
KVDictionary: added opCtx to cursor seek/advance
Merge branch 'kv_dictionary' into tokuft
Merge remote-tracking branch 'esmet/tokuft' into tokuft
TokuFT: use opCtx in cursors to reset txn
TokuFT: added writer mutex to support 1 writer + multi readers concurrency, turn on doc locking