angularjs directives for picking from or editing tree structures