[added] getRouteProps for route handlers

Stuff to do for server rending integration:

- [x] don't replace the HTML (253bc1ae)
- [x] get data from multiple promises (db8298a00)
- [x] add some nested routes and make sure they work
- [x] get `activeRouteHandler` to work again

---

This commit adds the ability for route handlers to load props
they need for a given route, optionally asynchronously. Props
loaded in this manner cascade from route handlers further up
the hierarchy to children, such that props loaded by children
take precedence.

getRouteProps should return a "hash" of props, the values of
which may either be immediate or deferred using promises. As
promises resolve, forceUpdate is used to re-render the `<Routes>`.
If no props are promises, the operation is fully synchronous
and route handlers will have all the props they need on the
initial render.

As implemented, this work should satisfy the use cases in #319,
 #261, #314, #374, and (indirectly) #262.



Just noticed this isn't being used anywhere in the file.