[Finishes #80927658] Allow variable create/edit/delete to be disabled on a per-level basis

The fix for #80927658 was a little more complex than just making getUserBlocks() return blocks that are not editable.  Modifying getUserBlocks would've affected the block count.  I added a config option so editing of variables can be disabled, while keeping the block marked as editable.
I followed the pattern in https://github.com/code-dot-org/code-dot-org/blob/staging/blockly-core/blocks/procedures.js#L34 -- my guess is that doing it `init()` prevents it from being changed while the level is being played.  I'm happy to remove the extra var (in both files).