Mod data parsing rework
Parses mod.json data not only in temporary JS values, but in a proper C++ struct.
This will ultimately make it more convenient to pass more than just the version to JS in D3968, and it enforces the schema a bit more.
Differential Revision: https://code.wildfiregames.com/D3988