NameSpace SymbolTable implementation

Implements a data structure to maintain fully qualified symbol name and
name space resolution from partial names.
To make it possible to run a test script
Trace impl for non replicating functions

Implementation into local cache store for specific key
Merge branch 'StableBranchWithTestcases' of https://github.com/lukechurch/designscript into StableBranchWithTestcases
Defer SSA transform until after classname compile pass
Merge branch 'StableBranchWithTestcases' of https://github.com/lukechurch/designscript into StableBranchWithTestcases
Function redefinition tests for modified and unmodified CBN nodes
Simulates CBN being automatically and manually when a function is
redefined.
Fix the inconsistency of ICoordinateSystemEntity.ScaleFactor
Merge pull request #153 from Randy-Ma/StableBranchWithTestcases

Fix to inconsistency of ICoordinateSystemEntity
Merge pull request #154 from junmendoza/SSA_DeferTransformAfterClassDefinitionPass

Defer SSA transform until after classname compile pass
Merge pull request #155 from junmendoza/FunctionRedefinition

Simulates CBN being automatically and manually when a function is redefined
Re-execute nodes dependent on a redefined function
Merge pull request #156 from junmendoza/FunctionRedefinition

Re-execute nodes dependent on a redefined function
Merge branch 'StableBranchWithTestcases' of https://github.com/lukechurch/designscript into StableBranchWithTestcases
SymbolTable class update for namespace resolution

- Addressed review comments
- Added few more query methods
Updated some comments
Optimize node re-execution on function redefinition

1. Memoize the graphnodes in a list that contain user-defined function
calls
2. Refer to the graphnode list when selecting nodes to re-execute
3. Function redefinition test cases for overloaded functions
NameSpace support for FFI

- mTypeNames map is updated to keep fully qualified class name instead
of just class name as key.
- ClassDeclNode.Name for a CLRModuleType is compiled as fully qualified
name for the CLR type.
- ClassTable class is updated to maintain the class symbols in
NameSpace.SymbolTable
- ClassTable.IndexOf() operates on partial name as well and it can
return a unique index as long as given name can be resolved to a unique
symbol in the symbol table.
-Verified that there is no regression because of these changes.
Merge branch 'StableBranchWithTestcases' of https://github.com/lukechurch/designscript into StableBranchWithTestcases
Merge pull request #152 from sharadkjaiswal/StableBranchWithTestcases

NameSpace SymbolTable implementation