Initial commit for modules #346

1. Refactored ScriptRuntime into a ScriptContainerFactory it wraps. The factory can be passed in enabling the initial setup container to be reused without duplicating code. This is needed for loading modules in the same way as script packs are loaded.
2. Introduced module infrastructure. Not wired up yet / central modules folder is not created.