revving version for npm
Adds private blocks, known limitations

The `private` keyword will open up a private scope block. Currently
the use of just `end` will not work. `endPriv` currently closes the
scope block and immediately calls it. The beginning of the IIFE is
nerfed with a `;` to prevent errors, especially since automatic
semicolon insertion is not implemented.