Allow disabling particular alerts for a Location

Each location currently has alerting roughly like this:

- tide predictions: must run > 30 days into future
- surge predictions: must have every minute in the next 12 hours
- observations: must have at least 1 observation in last 60 minutes

We need to be able to turn off particular alerts for when we add a new
location. This means we have time to load tide predictions and configure
the surge & measurement collectors.

This commit allows temporarily disabling alerts, ie setting a
`tide_predictions_alerts_disabled_until` field - to make it a little bit
harder to forget to turn alerting back on!

https://www.pivotaltracker.com/story/show/80543916 [Delivers #80543916]
Merge pull request #96 from sealevelresearch/allow-disabling-alerts

Allow disabling particular alerts for a Location
Use correct datetime format for import_predictions

eg `2014-08-03T12:00:00Z` instead of `2014-08-03T12:00:00+00:00`

[#80649322]
Load field `predicted_tide_level`

Rather than `predicted_height`

https://www.pivotaltracker.com/story/show/80649322 [Fixes #80649322]
Merge pull request #97 from sealevelresearch/import-predictions-datetime-format

Use correct CSV format for import_predictions
Add tests to highlight missing `slug` in locations

.. endpoint [#80656450]
Add slug to serializer field for /locations

https://www.pivotaltracker.com/story/show/80656450

[Delivers #80656450]
Merge pull request #98 from sealevelresearch/add-slug-to-locations-endpoint

Add slug to serializer field for /locations
Remove seconds from datetime format

We only support datetimes rounded to the nearest minute, so no point in
being able to parse seconds. This will also enforce that constraint at
the parser level rather than in our code, which is good.
Merge pull request #100 from sealevelresearch/remove-seconds-from-datetime-format

Remove seconds from datetime format
Tweak error message in Minute model
Merge pull request #101 from sealevelresearch/tweak-error-message

Tweak error message in Minute model
Add the concept of token authentication to the API

Install the `rest_framework.authtoken` app which allows you to add
authentication tokens for particular users. This will allow us to make
eg a `surge-model-collector` user with their own token.

We've currently got only read-only endpoints so this shouldn't have any
effect, but it is required for implementing the writeable
surge/measurement endpoints.

[#78037278] [#80542816] [#78441914]
Upversion djangorestframework 2.4.1 => 2.4.3

Which provides new migrations for `authtoken` app.
Merge pull request #102 from sealevelresearch/rest-framework-authentication

Add the concept of token authentication to the API
Use django rest framework 3.0 pre-release

See https://github.com/tomchristie/django-rest-framework/blob/version-3.0/docs/topics/3.0-announcement

Bear in mind for [#78037278]
Remove `method_name` from `SerializerMethodField`

See https://github.com/tomchristie/django-rest-framework/blob/version-3.0/docs/topics/3.0-announcement.md#optional-argument-to-serializermethodfield
Use `.query_params` rather than `.QUERY_PARAMS`

See
https://github.com/tomchristie/django-rest-framework/blob/version-3.0/docs/topics/3.0-announcement.md#the-data-and-query_params-properties
Replace `lookup_field` with `extra_kwargs`

In `HyperlinkedModelSerializer` for location.

See https://github.com/tomchristie/django-rest-framework/blob/version-3.0/docs/topics/3.0-announcement.md#changes-to-hyperlinkedmodelserializer
Point requirements.txt at a specific commit.