Add cancellation support, and port GetLongpollDelta from DropNet

This pull request:

* Adds overloads to all methods to pass in a `CancellationToken`. This should be backwards compatible, beacuse I have added actual overloads rather than using an optional parameter.
* Ports the GetLongpollDelta method from the DropNet project
* Improves error handling for GetDelta

Please let me know if you'd prefer these commits as separate pull requests.