Created root SourceTree with global register of symbols

Instead of iteratin through the sourcetree scope by scope when searching for a symbol, the searched symbol will be compared by its local name and results will be filtered by scopes and variable types from these results.

* so far testing shows that it is a awesome idea
Moved some of the grouping to a separate class, and enhanced handling
Added support for 

* also refactored SourceTree-print() function
Enhanced symbol recognition

* Names like Apa::apa is now recognized
Added auto keyword lookup