Json strict load order

Puts all of the json objects into order based on type and order of appearance when loading the json files. Then it goes through them in the defined loading order and actually loads their data.

I have not seen any visible slowdowns of the JSON loading, but there is likely some minor slowdown due to taking all of the data from the files, stuffing it into the load queue, and then finally loaded in order from there.

Based heavily on AtomicDryad's "quick_n_simple_mod_support" branch which makes up the first commit in this PR