Added new AbstractVariable interface which all Variables implement.  My old Variable class isn't appropriate for all situations
Added new awaitingJsIdentifierAssignment method to AbstractVariable: returns whether or not the variable wants to be assigned a JS identifier

- used by the code that assigns identifiers to so-called "unnamed" variables
Split code that adds a variable to a scope from code that determines if you're allowed to add that variable

- allows different scope implementations to specify different rules for which variables can be added
Added new _hasJsIdentifier method to AnglScope, used by scope implementations to say whether or not they already have a JS identifier with a given name.

- used when assigning unique JS identifier names to so-called "unnamed" variables
Added new AST node type "jsfunccall" used to generate code that calls a javascript function, instead of using Angl's function invocation rules

- for use by the AST transformer and JS generation code
Shortened identifiers for Angl runtime and global namespace container

- makes generated code more readable
Added new variable allocation type "NONE", for variables that are never allocated in Javascript because they are somehow pre-existing

- could be because they're already exposed in scope or because they refer to another JS variable whose allocation is generated elsewhere
Added LinkedVariable, a new implementation of AbstractVariable that has a unique identifier in Angl but maps to another Variable in JavaScript
Implemented with() loop generation.

- added WithScope, a subclass of AnglScope use for with loops so that we can override the self and other variables
- with AST node is prepended with a statement that calls the runtime to resolve our with expression into an array of objects
- with loop is generated as a for loop that iterates over our array of objects
Implemented "div" and "mod" generation.
Property access on `self` and `other` no longer generate calls to `resolveObjectBeforeDot`
Outputted code is now a RequireJS module
Added "true" and "false" to global scope
Fixed bug where cmpassign statements would generate an extra unindented semicolon in the JavaScript
Added incomplete support for object generation.  Still need to handle `parent` inheritance and `super` calls