Added OSCacheReader and fixed some small script issues

OSCacheReader will let us load definitions from the cache and allow us to complete randoms such as EvilTwin and PrisonPete (see com.logicail.script.DefinitionLoadingScript for how to use, basically `ctx.definitions.getLoader(NpcDefinition.class).get(id)`)

Fixed script startup (moved chain initialisation to start(), because OSRandom can't access ctx.controller.script() as it is not set yet)

Fixed small compile error in StrangeBox