New encoding of method names to make identifiers.

In order for Closure Compiler to rename method names, they
have to be identifiers, and selected with dot selection.

This new encoding ensures that all members (fields and
methods) are encoded as identifiers.
$-mangle JavaScript bridges, so they are identifiers.

If they are not identifiers, they cannot be renamed nor
eliminated by Closure Compiler.
Tighten uses of Select and PropertyName.
Always emit []-select for calls to JavaScript.

This will prevent Closure Compiler from renaming these
symbols.
Enable class and module symbol renaming.