Run each test in a new bot thread

This provides more isolation and makes it a lot easier to debug
problems, as all captured logging pertains to one test and one test
only.

Closes #124
Split up test runs

For some inexplicable reason, the webhooks tests were consistently failing
when run as part of the whole testsuite, but passing fine when running only
tests/webhooks_tests.py on their own. Although ugly, by splitting these up
and calling each file with tests in it's own nose.run(), we can work around
this issue and have working tests again.
Do TLS certificate checking in XMPP backends
Merge pull request #181 from zoni/isolated_tests

Run each test in a new bot thread
Merge pull request #180 from zoni/issue/175

Split up test runs
Merge pull request #182 from zoni/verify_tls_certs

Do TLS certificate checking in XMPP backends
Bundle a patched version of Rocket

This includes a bundled version of the Rocket webserver, with patches
applied that cause it to properly close it's listening sockets so that
err doesn't hang on executing `!restart`. Specifically, the included
version of Rocket here in a monolithic build of the version tagged
1.2.4-p2 in http://github.com/zoni/Rocket
Make webtest a hard dependency

Previously, webtest was only required when running this tests. Commit
aaf704b6 made it a requirement for the Webserver plugin however, so it
should be listed in requirements.txt as well.
Fix run_tests.py for Python 2.7

Looks like Nose is ignoring the argv argument passed to nose.run,
which in some cases would make it fail to pick the converted sources.
Add bot command to generate SSL certificate directly from Err

This adds the command '!generate certificate' which will generate a
self-signed certificate directly from Err, instead of relying on a
seperate script to do it. Relies on PyOpenSSL but checks to make
sure it's installed and simply gives a warning when it's not, so
PyOpenSSL doesn't become a hard dependency.
Make travis install PyOpenSSL before running tests

It is needed to test the `!generate certificate` command.
Improve error checking and handling around storage

This will ensure a plugin which failed to successfully run it's activate
stage causes an exception when trying to close storage during deactivate.
the 3to2 refactorer did not like that for a very obscure reason
rc1 prep
Correct the bot's English in uptime and status.
Fix MUC login: Support tuple & add username

In order to enable MUC for XMPP I needed to tweak `callback_connect`:

- `logging` fails if we have to deal with a tuple
  The values need to be accessed by index if we have a tuple
- add parameter `username` in `join_room` with a name

Otherwise the connection can not be established.
Merge pull request #188 from daenney/master

Correct the bot's English in uptime and status.
Merge branch 'release_prep' of git://github.com/zoni/err into zoni-release_prep

Conflicts:
	scripts/generate-selfsigned-sslcertificate.py
Small unit test breakage after the engrish corrections
don't run the flaky tests on travisci