Hierarchical Router

having a hierarchical router is very useful in cases where we have
sub-shells with dedicated menus, like knockout sample itself. the sample
is not such that complex to need such a router, but in more advanced
scenarios it's really helpful.

i have moved loadUrl logic from history to router. now sole
responsibility of history is to tell whenever the url changes. router
itself must handle urls. now we can have different routers. there's a
default router like before, but a create method is provided for
creations of child routers.
history tells url changes only to default (root) router, each router
notifies it's children if there's any.
Merge pull request #155 from arash16/master

Hierarchical Router
Improvements/fixes to child routers.
Working on router bugs...

Fixing up child router sample. Removing unnecessary route options:
caption and settings which are not used by the router.
Working on hierarchical router api and bugs.
Fixed a navigation state bug with child routers.
Fixing child router multiple doc title sets.
Added isBoolean to system.
Cleanup of router options and child router instructions.
Some internal router cleanup.
Fixed isNavigating with child routers.
Cut down the timeout length on afterCompose.
Some internal widget consistency cleanup.
Composition activationData and widget activate/deactivate.

-Compose bindings can now specify activationData to be passed to the
bound view model's activate function.
-Widgets now use composition activationData to pass the settings to the
widget.
-Widgets now support deactivate, called when the widget is removed from
the dom.
Merge branch 'master' of github.com:BlueSpire/Durandal

Conflicts:
	skeletons/nuget/Durandal/content/App/durandal/amd/optimizer.exe
	skeletons/nuget/Durandal/content/App/durandal/amd/optimizer.pdb
	skeletons/vstemplate/DurandalTemplate/DurandalTemplate/App/durandal/amd/optimizer.exe
	skeletons/vstemplate/DurandalTemplate/DurandalTemplate/App/durandal/amd/optimizer.pdb