Disallow unspecified properties in JSON

It makes the process of checking for unsanitary markup easier if we disallow
unspecified keys: we are then free to use the schema to find all string values
to check.

Additionally, it prevents users from defining new fields in the API. This could
potentially be a disadvantage.

The tests needed to be updated so that they still supplied valid data.