Torrents support

This PR is intended to do a final checkup on all changes pertaining to torrents before merging it into dev.
Obviously we aren't finished, some features are missing and some things we should have done differently.

One thing I particularly dislike is the torrent proxies remembering authentication state. I rather have a Connection class that contains that state and caching as well. This would also better allow callback logic, like the Deluge daemon rpc has.
But it would be a significant undertaking to make that a reality, so i'll settle for "good enough". Once everything is in dev or even master, we can look at implementing Connection state.

Feel free to comment on anything you like.
It doesn't matter, item.OutputPath is null by default.
afaik the torrent will always have a root path, but that isn't guaranteed. If that happens I rather have it listed without path (CDH will simply not be able to import) allowing it to be listed on the UI.
We do the same for queued/downloading items in sab afaik.