refs #401, refs #375,  refs #366, have authentication related transactional operations run in an alternate transaction stack.
They do not belong with the same stack as a multi-statement transaction. Also, have the NamespaceIndex use two locks, one for initializing/opening
NamespaceDetails, and another to access the map of opened NamespaceDetails. This way, no thread that wants to access an already opened NamespaceDetails
will ever block behind another thread in the process of opening a NamespaceDetails. Also, should reduce the likelihood of a deadlock where one thread
holds the _openRWLock and is blocking on row lock during an open, and another thread that has the row lock is blocked accessing a NamespaceDetails
because the first thread holds the _openRWLock. With this change, the only threads that can block behind each other are threads that are opening
NamespaceDetails, which is much more rare.
Merge branch 'bugs/366.375.401'

Conflicts:
	src/mongo/db/instance.cpp
	src/mongo/db/namespace_details.h
	src/mongo/db/namespace_index.cpp