Re-jig the integration tests 

This pull request aims to do a few things:

1. Prevent builds timing out and failing regularly. This is addressed by increasing the timeout of all WebDriverWait calls to 30 seconds, while not ideal it seems to fix the common issues.
2. Providing readable test output. A new test.ini file has been created that turns off logging, if there's a simpler way to do this then let me know. I've also moved the setup/run code into script/{cisetup/cibuild}. This handles piping the SauceLabs client output into a file. This is then output only when the tests fail, this makes the test output far more readable.

So, lastly a couple of questions.

1. If we're just running the tests in Firefox at the moment, is there any reason to use Sauce Labs? I know it gives us flexibility in future but if we're not using it right now we could just use the Firefox provided by Travis and skip the timeout issues all together.
2. For local feature development have we looked at PhantomJS? You can drop `webdriver.PhantomJS()` into the `__init__.py` and it works as expected, but without the entire browser launching.
3. Lastly I think it would be good going forward to split the unit test runner from the functional test. You don't need to run both all the time, usually the unit tests are run regularly during development and the functional ones just before you commit.

Thoughts?