Fix #39. Add cancel option.

If anything is written to the channel given as :cancel-option,
the xhr request will be aborted if it's not completed yet.
If request is aborted, don't put the response to output chan

If request was aborted we don't want to put the response to the output
channel.

Added tests to check that if request is aborted, response channel is
closed without the response being put into the channel.