Add timezone to Point.time_is Fixes gh-12

We were getting runtime warnings from Django complaining about "naive datetime",
due to no timezone being specified. Force the timezone to be UTC (assuming this
is always what will be in input files).
Prevent duplicate entries being created. gh-11

Changes to ingestion routine to prevent it from creating duplicate Campaign,
Deployment, and Point entries.

This is done by creating new subroutines get_campaign etc which do a
Model.objects.get_or_create() using all of the fields to see if there is
already a matching entry.

Note that currently, the MEASUREMENTS will still be duplicated if the same file
is read more than once so some work is still needed.

In addition, new tests are added to check that the duplicates are correctly avoided.
And also added a test for the units_and_name subroutine that was added in
commit bfe590508dcf2ae8dfabcd1d1b015106386e6156
Tidy up ingestion tests

Refactor the tests a bit to make them tidier: put the duplicate record
tests into their own class, with the setUp method doing the ingestion
rather than repeating in each test.
Point.time_is unit test checks for a datetime object instead of a string. Closes gh-5
Link Point with MeasurementType, and only display available types. gh-4

Add a ManytoMany field to the Point model, linking it to the MeasurementType
model (through Measurement). With corresponding changes in api this allows us
to get a list of which measurement types are present at each point.

Then change map_.html so that only measurement types that are available at the
selected deployment (though not necessarily at all of the points there) are
displayed in the list.