Utility functions cleanup: Split lib/utils.js

Split lib/utils.js into multiple files. Some of the functions were
generic, these were moved into files in lib/utils. Other funtions were
specific for the compiler, these were moved to files in lib/compiler.

This commit only moves functions around -- there is no renaming and
cleanup performed. Both will come later.
Utility functions cleanup: Cleanup lib/utils/arrays.js
Utility functions cleanup: Cleanup lib/utils/objects.js
Utility functions cleanup: Cleanup lib/utils/classes.js
Utility functions cleanup: Cleanup lib/compiler/asts.js
Utility functions cleanup: Cleanup lib/compiler/visitor.js
Utility functions cleanup: Cleanup lib/compiler/javascript.js
Fix a bug in |stringEscape|

The |stringEscape| function both in lib/compiler/javascript.js and in
generated parsers didn't escape characters in the U+0100..U+107F and
U+1000..U+107F ranges.
generate-javascript.js: s/generateJavaScript/generateJavascript/

This makes the variable name in sync with pass name in lib/compiler.js.