Fixed AWAIT_* macros which can hang forever if the Clock is paused.

- Note that this fix acts as a safeguard to prevent AWAIT_* in tests
  running forever. It does not eliminate the need to advance the clock
  in loops in some tests.
- I found putting Clock::advance() (optionally with os::sleep) in
  AWAIT_* too implicit and takes control over the clock from
  developers who write tests. (See related ticket
  https://issues.apache.org/jira/browse/MESOS-827, will explain
  elsewhere.)

Review: https://reviews.apache.org/r/17805
Removed the while loops in ZooKeeperTest.

Review: https://reviews.apache.org/r/17806
Made Group's state transitions monotonic except when expiration occurs,
in which case it is reset to the initial state (DISCONNECTED).

- Reconnecting does not reset the state to CONNECTING now. The steps
  the group has taken to set up the group are remembered (thus not
  redone) across reconnections.
- Improved comments on state transitions.
- Added the DISCONNECTED state back for the parity between Group and
  ZooKeeperStorage.

Review: https://reviews.apache.org/r/17858
Fixed flaky MasterZooKeeperTest.LostZooKeeperCluster.

Review: https://reviews.apache.org/r/17864
Removed an unnecessary intermediate ZooKeeper WatcherProcess.

Review: https://reviews.apache.org/r/17440