Only non-ECMAScript globals are referenced with `window`
Move Grammar into main closure
EventEmitter: .emit() binds listeners before calling them, works if listeners remove themselves

fix #28
Pass tests that were failed by the previous commit.
Merge pull request #29 from joseph-onsip/issue28

Fix #28
Test the fix for #28.
Some platforms emit onicegatheringstatechange instead of an empty onicecandidate
EventEmitter: Make .once() work with no bookkeeping