Switching from using TaskCompletionSource to using Reactive Extensions.

references #7
Switching the DataHandler from TaskCompletionSource to IObservable

references #7
Updating to the latest version of Rx.

references #7
Adding the timeout to the response message processors

references #7
Fixing the unit tests.

references #7
Merge pull request #25 from pvandervelde/issue/expiredmessage

Provide way to detect expired messages