Tree improvements

fixes #141.

This has lots of improvements for the Tree views

Perf
+ start buffering batch changes to a view
+ start debouncing other things
+ stop re-rendering trees when toggling collapse state

Refactor:
+ Create activityTree class
+ move commands to ActivityNode for build and update

@ianmstewart i think you're going to like this patch :smile_cat: 
your work w/ trees is rock solid.
Overriding a private method looks brittle.  I suspect you realize that and there isn't a better way, but just mentioning this in case.