Add global setup/teardown - the big test refactor

It seems we didn't know how to do global setup/teardown.

This pull request makes it so that the tests run in one browser
session for the entire run, eliminating the slow opening/closing
of browser sessions.

Then I introduced 'loginAndGo' for the purposes of ensuring that
the URL/account state is correct when tests start. It has an optimisation
to avoid logging in if we're already the same user, which is frequently
the case.

`prepIntegration` has been removed, but I've put the database cleaner
in a few places which apparently needed it.

With these changes, the whole integration suite runs and in ~2 minutes
for me.