Desktop redirect

Fixes #43.

In order to enable desktop redirection, I had to rewrite a solid chunk of code, notably within the listener. The new code is more DRY and, I think, easier to understand - though that, of course, is highly subjective ;)

I adapted all tests and updated the README. The configuration and behaviour should be 100% backward compatible. Internally, the cookie might be handled slightly differently though, but that shouldn't be a problem.

I'd be happy to hear your feedback or answer questions if need be :)