Refactored internal testing framework

Since I was unable to run all tests on my computer, I have rewritten the entire testing backend used for this package. It is redone using the basic unittest framework of Python, but includes a `test.py` for backwards compatibility with the original module (and supports reporting tests to TeamCity itself without relying on the `TeamCityTestRunner`). This does, however, require the `virtualenv` package to be installed.

I have removed the bundled packages from the `test_support` folder as these only increased the package size and did not add much functionality. Instead, these must now be downloaded from the internet. This is not a big deal, as these are only required by the `test.py` script. The new recommended method is to run `python setup.py test`, which also requires these packages, but in the main environment. (It is recommended to run this in a virtualenv for testing anyway.)

I have also moved some stuff around: all test-related stuff is now in the `tests` folder (apart from `test.py`) and the `MessagesTest` is now a proper test, not requiring gold files anymore.

In short, this pull request makes:

* packages smaller by removing the bundled packages
* use of packages from the internet
* the requirement to run a Python process in a Python process in a Python process for testing obsolete
* local testing much easier
* TeamCity testing unaffected