Switch from unittest & nose to py.test

I'm a big fan of [py.test](http://pytest.org/) over the built-in *unittest* module that comes with Python. *py.test* is a lot more Pythonic, offering what I think is a cleaner syntax and more powerful/easy to use fixtures.

The documentation of *py.test* is excellent and the learning curve for it is pretty low, two points that I think are especially important for Err, given we have our share of users who are not very familiar with Python. Using an easier testing framework increases the likelihood that plugin authors will write tests for their plugins.

This branch provides an easy to use *py.test* fixture that is the equivalent of the `FullStackTest` class that we already have. The `FullStackTest` class has been refactored to work in a 100% backward-compatible manner.

The default test runner has been changed from *nose* to *py.test* as well. Various of our own internal tests still use `unittest.TestCase` for now, but *py.test* handles these without issue. My plan is to gradually change these over as time permits.

For now I have already rewritten the webhooks tests. A very positive result of this is that these tests no longer cause intermittent failures and now work reliably on Travis-CI as well.
Please split out the changes irrelevant to the current pull request (If we have to rollback something, it makes it way easier).