Only allow full replacements in PUT requests.

Previously, a PUT request would allow updates with some fields missing,
leaving them with their previously-stored values. This change makes the
success or failure of a PUT request, and the resulting state of the
stored data for the content item concerned, purely dependent on the
content of the request.
Remove the `created_at` timestamp.

Since we now overwrite items from scratch, this is always going to be
the same as `updated_at`.
Add unit tests around upsert operations.

Because `upsert` and `save` have separate callback logic, we need tests
for both.
Merge pull request #21 from alphagov/no-partial-updates

Only allow full replacements in PUT requests.