navigation hierarchy, templates now loaded on demand and only as needed

- can now specify parents[] for a page, allowing it to inherit the before/after funcs, templates, and so on
- fin.extend function does object property extend/override, can optionally replace or extend arrays (required for new navigation hierarchy inheritance)
- *fixed: before/after_funcs not executing if a dot.key string is specified for the function
- *fixed: onHashchange wasn't triggered on initial page load
- *fixed: onHashchange triggered error if no matching route and no default_page set
- no longer need settings.containers
- added a special 'require' container for declaring dependencies on subtemplates or function templates.