Create a new routine that creates internal sessions (the old "internal"
flag to the general-purpose session creation function), add optional
code to acquire a reference to the metadata file.

Some minor cleanups, setting the internal session's name in a few places.

Reference #1073.
We no longer check for the log file here, fix a comment.
Fix a comment, __session_close_cache is not called holding the schema
lock.
The connection handle code shouldn't really be dealing with session-style
cached handles (WT_DATA_HANDLE_CACHE), and there's duplicated code to close
all of the cached session handles. Instead of exporting a call to discard
a single handle, export a call to discard all of the handles.
Skip decrementing the connection's reference count when discarding
session-cached handles for internal sessions.
Grab the live lock when loading a checkpoint in diagnostic mode: that could race with a read.

refs #1102
Mark some internal sessions as not allowed to open data handles.  Use this to ensure that we can safely keep some sessions open after all data handles are closed.  Switch LSM to use the new __wt_open_internal_session call.
Bump the number of slots for internal sessions: we have a lot more than 2 now.
Merge pull request #1146 from wiredtiger/load-live-lock-diagnostic

Grab the live lock when loading a checkpoint in diagnostic mode
Free the handle list allocated during checkpoints.
Merge pull request #1141 from wiredtiger/acquire-metadata-at-session-create

Cache metadata reference when creating internal sessions.
Move session creation out of worker threads: the session open can race with connection close.