Demo compatability layer
This will allow us to run older demos on newer versions of the game without breaking references in between.
Before:
- If you changed the name of an object it would break all demos before it.
- If an RPC changed name it would break all demos before it
Now: we can optionally cache all of the old names + hashes of objects and RPCs during each manifest build then on playback we can check for missing ones to fill in the blanks.
Won't be a silver bullet but should prevent simple issues from destroying demos