Add Multiple Selection functionality. 

Hello,  We like your tree control, but we needed to be able to select multiple items and reference the selection set from the parent scope.  The change was simple; we were able to allow both modes (single/multi) without changing the exterior interface.  Much of the diff on the pull request is formatting changes imposed by intelliJ (sorry!).

We want to work on a second pull request that allows us to store the selected nodes map and reload from a user  preferences data from another browser.

We see that the $scope.$id for each tree node child scope created using ng-repeat is used to index the map of expandedNodes map. We used the same for the selectedNode(s) map.  We see that you can reload the tree with new data and keep the same selection (indexed by the child scope.$id)  Not sure how this will translate to persisting the selection set and re-configuring the tree on subsequent page refresh.  Any ideas ?