Rewrote SymbolTable using a tree data structure (needed for same level block handling)
* SymbolTable now functions externally the same way, but internally is completely changed
* Added 2 more outward facing functions to TreeNode
* Added another test case to demonstrate changes to SymbolTable