Fix Deferred returned from TreeView.display()

* Previously, it would resolve much too soon
Replace `can.route` with direct `hashchange` routing

* Basically, `can.route` doesn't support recursive routing, which we use
  with the `display_path` pattern, and we currently don't use any of its
  other features.
Enable recursive `display_path` routing in trees

* Also use `scrollIntoView()` to attempt to make the requested element
  visible (this is glitchy).
Sometimes make Audit links point at Dashboard page

* Auditors cannot see the Program page, but they still see the in the
  LHN, so point that link at the Audit widget on the Dashboard page
Merge pull request #1284 from reciprocity/feature/fix-audit-links-and-redirect

Fix audit links and redirect