AngularJS TreeView which supports multiple selection, sync and async loading