added selection change observer & made little optimization tweaks
removed @each dependency from the observer which was causing maximum call stack size exceeded error on node selection
updated qunit tests
Merge pull request #426 from PrimeRevenue/refactor/tree_optimization

refactor/tree_optimization