refactored, added MonotonicDelayTimeout, added tests

Signed-off-by: Sean Nicholls <sean.nicholls@feedhenry.com>