Some code cleanup
Chaining manipulation extended. Blocking wait and ready check introduced

 - now you can ask chaining objects for readiness explicitly or implicitly
 - `wait` method allows you to wait some service method (or chaining) for completion during some timeout
 - some documentation added

Example:
Given:
 - service 'Kings' with method 'hailAndKill' that invokes approximately 0.2 seconds

Now you can write:
```
>>> s = Service('Kings')
>>> fut = s.hailAndKill()
>>> fut.wait(0.1)
>>> print(bool(fut), fut.ready())
False, False
>>> fut.wait(0.1)
>>> print(bool(fut), fut.ready())
True, True
>>> fut.get()
'Power!'
```