Improve transform date range handling from periods

When a collector is run it will generally POST a single record into
backdrop. This will mean that the earliest and latest values sent
through to the transform will be identical.

When working with data that is aggregated data using a `period` query
parameters using the timestamp submitted as a `start_at` and `end_at`
will result in no data. We need to using the timestamp as a `start_at`
and use a duration of one with the given period. This will be used by
backdrop to find the week that this point is a part of and return the
data for the week.
Add inclusive flag to backdrop read query

We want to be able to make a query with the end_at parameter acting
inclusively rather than exclusively. This is for the case of a single
record being added and then transformed. We pass through the earliest
and latest dates of the data being written to the transform, when there
is a single point this will be one timestamp that we cannot use to
request the data due to the exclusivity of end_at.

This results in using the `$lte` comparator in the mongo query rather
than the `$lt` comparator.
Use inclusive when querying for one data point

If the latest and earliest timestamps are identical and the data we are
requesting is not going to be aggregated by a period, we should use the
new `inclusive` query parameter to ensure that we receive the data at
the given timestamp.
Merge pull request #390 from alphagov/feature/better-ranges

Improve transform date range handling