Updated class creation, added new default properties, other fixes/improvements

- String concatenation improvements
- Variable no longer inherits from ObjectNode since they aren't techincally the same to the parser
- Properties now override ToString which makes viewing them in the debugger a little nicer
- ObjectNode has been revamped to use a block node for its construction instead of the old manual method which was more of a workaround
- Bug Fix: FunctionDeclarationNode only adds a variable if the declaration has a name.
- Example script updated to reflect some of these changes
- Functions now have the 'length' property
- Functions now have the 'call' method
Merge commit 'c70cc0fa9fa97de6b0f1e93b637cdb8a2304ace4'