WIP - Path handling enhancements, bug fixes, architecture cleanup.

- Part of a weekend process to clean up url handling, including ability to
  handle hashes and query strings properly; and to clean up APIs.
WIP - pathFor and urlFor explicit support for hashes and query params.

- Putting query on the params object was just too confusing.
- Often times the params object is a document itself so to get that to work with
  the Router you have to extend the doc (e.g. Post) with the query params or
  hash. It should be separate.
- Idea is to let user set data context using the {{#with ...}} helper and the
  query params and hash can be set using Handlebars options.hash.