raise 404 on nonexistent tree

Also simplify Tree handlers, there was no need for more than two

- 404 on missing path
- only need one handler for each of redirect and dashboard, don't need duplicates.
- project property on Handlers is unclear, replaced with `project_dir`, and use it consistently in templates