Separate the tree from the router

I have a need to do http routing in and outside of a strict http context.  That is, I'd like to be able to reuse my handlers/routes in an http server and in other contexts.

This PR removes all notions of `Handle` from `tree.go` such that the calling env can (in most cases `router.go`) can decide what to store in the tree.