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`. I also started to put the tests in files by endpoint. There's some overlap, but it seems better than before.

You can test remotely like this:
```sh
PUBLIC_URL=https://api.accounts.firefox.com npm run test-remote
```
We now have 114 tests that run remotely :cake: 

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: