Better hide pegjs internals from user code -- isolate user code namespace

Also this refactoring need for include feature, on which I now working. It requires isolation of user code, because may be several initializers from several included grammars. Because some grammars need some internals of pegjs to work (for example, `peg$currPos`) there is good idea also merge #225 when you merge this.

Perfomance (-1.6%)
---------------
Measured with `benchmark/index.html` on Opera 12.17 build 1863.
Before (1000 times)
1. no cache, speed:
    Total	**68.14** kB	**93.81** ms	**726.29** kB/s
2. cache, speed:
    Total	**68.14** kB	**147.44** ms	**462.14** kB/s
3. no cache, size:
    Total	**68.14** kB	**740.66** ms	**91.99** kB/s
4. cache, size:
    Total	**68.14** kB	**506.97** ms	**134.40** kB/s

After (1000 times)
1. no cache, speed:
    Total	**68.14** kB	**95.46** ms	**713.78** kB/s (-1.72%)
2. cache, speed:
    Total	**68.14** kB	**149.20** ms	**456.67** kB/s (-1.18%)
3. no cache, size:
    Total	**68.14** kB	**753.35** ms	**90.44** kB/s (-1.68%)
4. cache, size:
    Total	**68.14** kB	**516.26** ms	**131.98** kB/s (-1.80%)