Fix issue #106

Added CancellationToken property to Async. Also, Async.Sleep has been
modified to check if the workflow has been cancelled before the timeout
expires. I took the chance to change the special types in the Observable
module from internal to private.