first vedquake

Moved all levels into one "levels" dir.
Moved vorp JS into its own "js" dir.
Make /vorp serve ved and not explode.
New URL scheme works now

Examples:
plexode.com/vorp#level-01 plays level 1
plexode.com/vorp#level=level-01 also plays level 1
plexode.com/vorp#level-01&mode=edit edits level 1
plexode.com/vorp#level-01&mode=json
Soon builtin levels won't be editable though, so these URLs won't ever
work in production.
Also fixed over-allocation of Audio Contexts from level to level, which
causes errors.
Initial support for builtin levels vs localstorage levels

They are both playable and JSON-able. Only localstorage levels are
editable - the builtins just give you a blank screen. Need to add "copy
level" to address that.
Tasks - some added, some archived
Sharing work - encode and decode levels into sharable URLs

Local and builtin levels are sharable using a "share" mode URL, and
they open right up as playable levels in another tab, and across
browsers. Re-used eval3's squisher and it works great.
Biggest problem is that data~ levels aren't editable in any way,
breaking the edit-and-share chain.
fixed share-mode header
more planning
editor UI read-only mode

also fixed opstor op extraction
fixed stor bug

where localstorage ops unrelated to stor would trigger error processing
path regexp
copy level

Now any level can be cloned to localstorage, including data~ and
builtin~ levels.
Fixed ghost noises left over from previous levels

kind of a cool bug though
delete-level button

yup, deleting stuff is there now.
plaaans
createClusterOps and createLinkOps

This simplifies some copying logic, and will be used for shrinking the
sharing data~ URLs.
Collapse model IDs in JSON and Share modes

Rewrites all IDs to 1, 2, 3... instead of 10, 202, 988...
GrafTemplate and some unit tests

Crazy idea for expressing multi-op-object creations as very short
single arrays of ordered params. This should get the size of the share
URLs down by roughly an order of magnitude.
doc
placeholder GrafTemplatizer
GrafTemplate addLink test

found and fixed bug so yaay
Added the name of the template as the first param in a template-invoking param array