Add very basic local file loading

- [ ] needs better UI
- [ ] the lifecycle of loading/unloading a project should be revisited

This adds jszip.min.jz from Stuk/jszip#543a29 (dual license MIT or GPLv3) to handle the unzipping (and later when there is an editor it can handle the zipping). The UI for it is a bit clunky, not my strong suit, but if you have an idea of how to make it better I am willing to implement. The current way projects are loaded is a bit sub-par, IMO, reloading the whole page just to read the hash and create the global objects.
Perhaps it would be better to use camel-case names (e.g., `projectIdOrFile`) here? They seem to be the convention throughout most of the source code.