Allow cancellation of active download

I use it in my code like this:

    def cancel(window):
        if window.stream:
            window.printstr('Cancelling {}'.format(window.stream))
            window.printstr(window.stream.cancel())

https://github.com/stav/clipy
`download()` will now return `None` if cancelled; any code that expects a string may break, so I can change this to add:

    else:
        return ''