GTKUI Torrentview Speed optimizations
Added test if self.model_filter is None

self.model_filter will be None if no list was ever loaded in the
Client, so listview.create_column_state would fail.
Optimizations to daemon and rpc messages.

* Implemented torrent updates with libtorrent post_torrent_updates.
  This required some changes to how core/torrenthandler
  handles get_torrent_status
* Reworked how torrent.py handles torrent info
* Removed some unneeded RPC message requests from client.
* Added tests for some expensive log prints.
Improvements and bug fixes
Removed debug print
Fixed bug with handling adding/removing columns in GTKUI.

Also reinserted two lines that were lost when porting patch to master
Fixed bug in torrentmanager.separate_keys

If none of the torrent_id's were present in self.torrents,
None would be returned.
Fix #2261 : WebUI: Proxy settings not being saved
WebUI: Add failed login log message with IP address for fail2ban
Fix #2242 : Notifications: Missing word in torrent finished message
Fix #2260 : Add dialog pulling main window to active workspace
Fix #2258 : Potential runtimeError when emiting event
Merge remote-tracking branch 'bro/master-torrentview-speedups'
Merge remote-tracking branch 'bro/master-daemon-optimize-speed'

Conflicts:
	deluge/core/alertmanager.py
	deluge/core/torrentmanager.py
Fix an issue with daemon speedups with file priorities for magnets
Ensure prioritize_first_last gets set properly for magnets
Add exception details to EventManager error log
Fix setting 1GB/s speeds in gtkui
Cleaned up torrents.py and small change to decode_string

Replaced some try/except-decoding with decode_string.
Removed redundant methods ti_name and apply_options.
In decode_string - changed last encoding (with ignore) from
chardet-detected to the encoding specified in key-argument.
Replaced ti_-functions with lambdas
Added GtkAdjustment to the port spinbutton