Sandbox Lua scripts

I was fiddling with something else and suddenly realised that this is now really really easy to do, so I just did it.

Each script file now gets its own global table. So does the console (as a whole, not per-line). The tables have a `__index` metamethod to fall back to the "real" global table for anything that's not found.

`PersistentCharacters` had to be moved into `Character`, because now globals are bad.

I haven't taken any particular lengths to make it impossible to access the real global table. I think that's ok though. Its a lot of extra complexity for very little gain, and its obvious that something weird is going on when anyone tries it anyway. I'm happy to slap a giant "unsupported" sticker on it and leave it at that.