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.
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.