TypeScript: expose durandal/system and durandal/viewEngine in module

Fix the route?: string; in route?: any (prevent the use of ['', 'dashboard'] in the shell route definition
Fix the routeHandler not being set as optional in DurandalHistoryOptions
Cleanup indentation
Add optional change detection

When using the observable plugin, add an option to register a method on
each object to automatically detect changes. This method receives as
parameters: the obj that has changed, the name of the changed property,
and either the newValue if it's a value type, or the arrayChange object
if it's an array.
Docs update

Added update to documentation, and corrected a possible bug when binding
array promises.
Fix Issue #488/#421: TypeScript - expose durandal/system and durandal/viewEngine in module
Merge branch 'Change-detection' of https://github.com/jbblanchet/Durandal into Version-2.1.0
Fix Issue #490: Add optional change detection via the observable module. See docs for details.
Show Message Boxes and Modals Documentation Update
Fix Issue #494: Feature: serializer.clone
Merge branch 'Version-2.1.0' of https://github.com/TommiGustafsson/Durandal into Version-2.1.0
Add documentation for "all" events subscription

Added documentation for existing on("all") parameter.
Typo
Rewrite observable.innerSetter

Reference BlueSpire/Durandal#496
Merge branch 'Events' of https://github.com/jbblanchet/Durandal into Version-2.1.0
Add documentation for "all" events subscription #497
Fix Issue #495: Maybe add a router navigation started event (added router:navigation:processing)
Merge branch 'Bug-496' of https://github.com/jbblanchet/Durandal into Version-2.1.0
Fix Issue ##498 and #496: Overwriting an observable array results in one-way binding of the new array
Fix Issue #489: Observable plugin resetting Deferred properties as undefined
Fix Issue #366: Make Observable Tracking Non-Enumerable
Merge pull request #1 from BlueSpire/Version-2.1.0

Version 2.1.0