Allow custom converters for IData in ITemplates
ISystems/IData must have serialization annotations

A serialization error will now occur if an Data.IData instance or an
ISystem type does not have a [JsonObject(...)] or a [JsonConverter(...)]
annotation. This removes a class of silent serialization errors.
Refactor GameSnapshot into multiple files
Merge branch 'master' of https://github.com/jacobdufault/forge