Fix some issues with the recent changes to handle locking:

1) bump the reference count before dropping the handle list lock.  Otherwise, a handle sweep could free the handle from under us in between.

2) hold the handle exclusive until sweep is finished with it.  Previously it could have been re-acquired in between, and the locking situation was unclear.

refs #1391, #1392
Fix build warnings with diagnostic turned off.
Merge pull request #1400 from wiredtiger/handle-locking-fixes

Fix some issues with the recent changes to handle locking
Minor rename: __session_add_{btree -> dhandle}.
Improve handling of a pathological case where the sweep and eviction servers are fighting for the handle list lock.  The big improvement is to have the eviction server not hold the handle list lock while walking a file.  In addition, the sweep server can interrupt the eviction server in order to get the handle list lock and discard a file from cache.

refs #1391
Nit: rename a variable.
Coverity bugs:

1. "if (LF_SET ..." should have been "if (LF_ISSET ..."; and

2. clean up on an out-of-memory error in __wt_checkpoint_list.
Merge branch 'develop' into sweep-eviction-improvements

Conflicts:
	src/session/session_dhandle.c
Revert to sweep checking a handle's reference count is zero inside the handle list lock.
Merge pull request #1402 from wiredtiger/sweep-eviction-improvements

Sweep eviction improvements