Move deserialization methods to a Helper class
Extract methods to retrieve metadata not stored in the model
Mark helper methods internal for now
Make tests pass

Quick null check for PublishedPropertyType - we can't create a dummy one from a test due to some internal Umbraco dependencies, and we can't mock it as the relevant properties aren't virtual, so just adding a quick null check for now.
Merge branch 'master' into feature/replace-prevalue