fixes #500 Remove an artifact from the memory-mapping days
changed storage::Dictionary to always be in a valid state #499

When Dictionary needed to be open()ed after construction, it allowed for
strange races and the proliferation of extra checks in many other places.
We moved open() into the constructor so that if Dictionary is ever fully
constructed, it's also valid.   To do this, we throw a new exception that
must be handled by any creator of a Dictionary that passes
may_create=false.

We also changed Dictionary to be stored in a shared_ptr to allow for
exception-safe closing.

closes #499
fixes #509 Inherit lock type, do not specify it
closes #507 Remove the now obsolete cpuprofile.cpp source file and any
scons options that deals with it
fixes #501 Add richer index access statistics, including nscanned,
nscannedObjects, inserts, and deletes. No updates yet - those are not as
trivial to track because of the way env->update_multiple generates keys
(you cannot immediately tell that two keys have changed based on the way
the DBTArray's were populated)
Fix stats
refs #501 Use a nicer pattern for implementing a cache line sized word
closes #512 fix overactive loader assert, expand tests,
fix another bug in client where we'd accidentally abort transactions out-of-order.
fixes #514 fix the ns field when creating indexes in mongorestore, also
remove unnecssary getOwned() calls in remote loader
Merge commit '4cc6cc7' into bugs/512
removed useless calls to getOwned in RemoteLoader #512
switched from ClientBulkLoad to RemoteLoader #512
factored out index ns renaming to affect bulk loaded indexes too #512

closes #512
Merge branch 'bugs/512'
fix compilation #512
Merge branch 'bugs/512'
made RemoteLoader fall back to trickle load correctly #512
Merge branch 'bugs/512'
fixed assert ids for master #512
Merge branch 'bugs/512'