[Extractor] Replace module which with twisted.python.procutils.which
[Execute] Tabs to spaces
[#1126] [#2322] Emit FinishedEvent after moving storage complete

Also changed the Execute and Extractor plugins to process the updated
FinishedEvent functionality.
[#1290] [Execute] Add TorrentRemoved event
[Extractor] Tidy plugin code and add webui page
[#2238] [Scheduler] Fix undefined this.scheduleCells
Update TorrentManager docstrings and remove old load_torrent method

Passes flake8 and mostly passes pylint
Use true division 'from __future__ import division'
Fix move storage dialog not closing
[#637] Add a Moving storage state along with progress

Uses attr Torrent.moving_storage for now but can be replaced with
future lt1.0 status field.
Refactored the code to use the common.TORRENT_STATE list.
Added a translating dict to ui.common to aid translation of state text.
Show actual error in status from storage_moved_failed_alert
Fix typo in loading peers_tab state
Change logging of 'creating backup' to debug level
Fix strange resume_data bug causing fastresume not save on shutdown
[#1859] [GTKUI] Improve layout of Remove torrent dialog

 * Using Shift+Del will now pre-select removing files.
 * Will now show the name of the individual torrent being removed or the
   total count if multiple torrents selected.
[#2347] Add orig_files to core
Refactor and tidyup code in torrent.py
Fix mistake in convert_lt_files
[#2161] Save magnet torrent_info to 'copy of' location

When magnet metadata is received a torrent file will also be written
to 'copy of' location if requested.
Modified the code for saving torrent file to state in Torrent class for
use by TorrentManager.
Refactor TorrentState to build the class attributes