Add doc page explaining metrics, close #224.
No longer treat dots in API keys in special ways.

We avoid the Graphite mangling that prompted this, by not giving out
API keys with dots in them.
Add package level test fixtures.
Refactor test db table creation/cleanup code.
Limit test db table setup as much as possible.

We do it once per test run and for the two test classes that change the schema.
Add a test API key for all tests globally.
Filter out a new WiFi test key, closes #249.

This also refs #96, where we'll provide a more complete and documented
test mode.
whitespace
Stop answering search/geolocate queries from invalid API keys, closes #231.

Also use more realistic test data. The changes to the error message
are ok, as the message part isn't actually specified in the API docs.
It's only the code, domain and reason which are official.
Merge pull request #250 from hannosch/231-disallow-invalid-api-keys

Stop answering search/geolocate queries from invalid API keys, closes #231
Address review comments.
Merge pull request #246 from graydon/bug-224-metric-docs

Add doc page explaining metrics, close #224.
Various small documentation updates.
Document heading, speed and signalToNoiseRatio for the submit API.
Add signalToNoiseRatio normalization and allow it in search requests.

The field is allowed but currently ignored while looking up a position.
It makes the documentation easier to have it available in all API's.
Update the calculation docs with some more current thinking.
No longer reject cell submissions without a phone type.

Each cell entry needs to have a radio field, but the phone type isn't
really used for anything anymore. Thanks to bkelly for finding this!
Document development only increase of MySQL max_connections.
Filter cell records against valid MCC codes, close #237.
Add geoip checking to geosubmit API, close #251.