adjust the timeout functions
adjust the timeout functions

- unfortunately, a strongly typed error path triples the number
  of methods.
1. the general case must return (any) Error errors
2. the Never error case acquires a Cancellable error path
3. a Deferred that already has Cancellable returns the same type.

glessard/deferred,glessard/swiftian-dispatch,glessard/async-deferred,glessard/deferred