compiler: introduce 'var-scopes'
compiler: introduce 'var-scopes'

A 'var-scope' is works like a function scope as far as visibility
of 'var' and functions, but isn't necessarily a function scope. It
allows us the flexibility to hide the visibility of some symbols
without a full-blown function.

tmikov/jscomp,ericlu88/jscomp,tmikov/jscomp,lsm/jscomp,martindale/jscomp,martindale/jscomp,lsm/jscomp,tmikov/jscomp,ericlu88/jscomp,lsm/jscomp,lsm/jscomp,lsm/jscomp,lsm/jscomp,martindale/jscomp,tmikov/jscomp,martindale/jscomp,ericlu88/jscomp,martindale/jscomp,tmikov/jscomp,ericlu88/jscomp,martindale/jscomp,ericlu88/jscomp,martindale/jscomp,tmikov/jscomp,tmikov/jscomp,tmikov/jscomp,tmikov/jscomp,lsm/jscomp,ericlu88/jscomp,ericlu88/jscomp