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.