Add simple microbenchmark that measures how fast ObjectManager::readObject
is and how well it scales as we add threads.

It looks like if we can fix TabletManager, we should scale almost linearly
up through 16 threads on rcmonster. Unfortunately, right now TM is killing
us with a single global lock and we just don't scale at all.
Checkpoint an enormous amount of changes and bug fixes that I'll need to
eventually clean up and push.
Replace a missing '!' that got lost in HashTable.cc. Works quite a bit
better now.
Fixes RAM-566 by catching an exception
Added zookeeper submodule.
First cut at ExternalStorage and ZooStorage classes (ZooStorage doesn't
yet have timer-based code to refresh lease).
Converted references back to pointers in Dispatch and ServiceManager.
Added new "filterTest" target  to make it easy to run a subset of the
unit tests. For example, "make filterTest FILTER='Dispatch*'" will run
just the Dispatch tests.
Created Unlock class (temporarily releases mutex, reacquires on destruction).
Created new WorkerTimer class: timers where the handlers run in a worker thread.
Fixed race in WorkerTimer between destructor and handler invocation.
New class DataBlock: synchronized access to a shared block of data.
Added timer-based lease renewal to ZooStorage.
Added monitor lock to ZooStorage to make it thread-safe. Had to do some re-factoring along the way.
New class MockExternalStorage.
Added CoordinatorUpdateManager class: tracks sequence numbers for
recoverable coordinator operations.
Added basic plumbing to incorporate ExternalStorage into the coordinator
(new command-line option, etc.). The default is to use a mocked version of
ExternalStorage. The ExternalStorage is not yet actually used by the
coordinator for anything interesting.
Added new ServiceMask methods: hasAll and hasAny.
Added new method AbstractServerList::nextServer (for iteration).
Fixed bug in AbstractServerListTest::nextServer: failed if only one server in cluster.