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.
I'm thinking this belongs in ActivityTree along with the pruneTree static method, since it is concerned with the ActivityTree's special node data type (not the ActivityCollection's data type).