[#2256] [GTKUI] Indexes aren't updated properly when removing columns
[#2698] [GTKUI] Fix corrupted column indexes when using multiple col_types

 * Ensures that removing multiple items from liststore_columns list does not affect the index.
[Core] [Tests] Changes to component.shutdown and unit tests

* component registry shutdown() now cleans up the component list
  this ensures that no old components are left when running unit
  tests.

* Added class BaseTestCase that all tests that create components
  should inherit from. It verifies the compoent list before and
  after the tests are run.
[Tests] Various fixes for unit tests and tox

* Added custom trial reporter for TODO with test example in test_torrentmanager.py
* Set Stats plugin tests as todo
* Disable new_release_check when running unit tests
* Added pytest.mark.slow to test_core.test_test_listen_port
* Get rid of unit test warnings (Caused by bad names in test classes)
* Removed warnings.filterwarnings in test files.
* Added separate tox target for generating test coverage HTML report.
[Tests] Changes to tests and test configs of Travis/tox

* Added pip chaching
* Added disable_new_release_check to tracker icons tests
* Fixed test_torrentview
* Require minimum tox version 1.8
* Fixed GTKUI tests and testcoverage by using xvfb on travis
* Separated the apt dependencies for commands requiering GTKUI deps
Temporarily disable testcoverage in travis build
[#2670] [GTKUI] addtorrentdialog: fix O(N^2) algorithm in add_files by recalculating folder state once instead of per-child
[#2670] [GTKUI] optimize file trees according to pygtk tips

Use a context manager to wrap the common steps:

1) disconnect the treestore from the listview
2) disable treestore sorting
3) add rows (different in add dialog vs files tab)
4) enable treestore sorting
5) connect model to listview
[GTKUI] files_tab: sort by name by default