Test refactor

I divided the tests into 2 types `local` and `remote`. Local tests are either unit tests of internal modules or API tests that need special configuration, for example setting a token lifetime to -1 to test expiry. Remote tests are for testing the API surface and may be run locally or against a remote server. We should try to use remote tests whenever possible.

I've moved as many API tests as possible to `test/remote` and the unit tests to `test/local`. We now have 114 tests that run remotely :cake: 

You can test remotely like this:

```sh
PUBLIC_URL=https://api.accounts.firefox.com npm run test-remote
```

During development I prefer `npm run test-quick` which runs without code coverage.

Before pushing to github we should run `npm run test-all` which runs with both db backends an coverage.

r? please :kiss: