DEV: Validate models returned from ContentsManager methods.

Adds a validation layer to models returned by `ContentsManager` instances.

ping @minrk 
We don't need to use this ugly JS convention of putting commas at the start of the line - comma separated lists in Python ignore a trailing comma at the end, so we can just put a comma at the end of each line.