Enable non-blocking wait on Followers and Metrics

The problem with ```waitFor()``` is that it blocks the calling thread immediately, preventing operations to be done while we are waiting for a message. This has been worked around frequently by users by calling ```waitFor()``` on parallel threads and that's just ugly.

This pull request resolves that problem by introducing ```expect()``` that will do the same, except for the immediate blocking. It returns a ```Future<Message>``` on which you can start waiting at the time of your own choosing. When the message arrives before you started waiting, the ```Future``` will return immediately.

Couple notes on the implementation:
* ```waitFor()``` methods have been deprecated and will be removed in 1.7.0.
* ```LogWatch.startFollowing(Condition)``` has been deprecated. It will remove even after 1.7.0, but its signature will change. (The return will change from  ```Message``` to ```Future<Message>```.)
* This enables multiple independent expectations on any ```Follower```s and ```Metric```.