Compiler should perform name-mangling where necessary

I ran into this issue last night when converting some models to Tortoise.  Galapagos will no longer pretend that a model compiled correctly when a compilation error occurred—hooray—but certain things get past the compiler that absolutely won't run in the JavaScript.  Namely, what I encountered is that procedures and variables whose names are valid NetLogo names are blindly treated as valid JavaScript names, even when they're _not_ valid JavaScript names (e.g. "erupt!", "%ice", "heat/minute").

Along these same lines, NetLogo resolves `apples` and `Apples` as the same.  However, JavaScript does not, so that also needs to be addressed in some way.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/netlogo/tortoise/103)
<!-- Reviewable:end -->