Depend on Montage in path changes
Use semantic versioning for dependencies
Replace bindings implementation with FRB

Added:

-   Serialization handlers for Bindings units using FRB and gracefully coercing
    deprecated forms, and specification for that feature.
    -   core/serialization-bindings.js
    -   test/serialization/bindings-spec.js

Removed:

-   Dependent properties are gone with this change.  All usage of dependent
    properties must migrate to using FRB computed properties.
        TODO I have not done a scan of the codebase to either migrate or
        catalog necessary migrations.

-   Object.prototype.getProperty
    Object.prototype.setProperty
        These methods have been removed in favor of:
            Use "get" and "set" for collections and arrays.
            Use "addOwnPropertyChangeListener" for property changes.
            Use "addPathChangeListener" for complex paths.

Broken:

-   Repetition and ArrayController need to be rewritten to support the new
    Bindings.
-   RichTextEditor because ChangeNotification has gone away.  This needs to be
    migrated to using Collections/FRB change dispatch.
-   propertyChangeBindingListener is no longer supported.  It is found in the
    following modules:
    -   ui/bluemoon/tabs.reel/tabs.js
    -   ui/flow.reel/flow.js
    -   ui/list.reel/list.js
    -   ui/repetition.reel/repetition.js
-   getProperty, setProperty, undefinedGet, and undefinedSet have all been torn out.
    Undefined get and set are used in the following modules:
    -   ui/dynamic-element.reel/dynamic-element.js
    -   ui/native/button.reel/button.js
    -   ui/repetition.reel/repetition.js

Migrated:

-   I've removed Array extras entirely.  This job has been taken over by the
    Collections shims.
-   Bindings are now a static dependency of Montage core.  This obviates the
    need to conditionally load it in Montage bootstrapping.
-   Replaced all occurrences of "count()" with "length" in both JavaScript and
    property paths.  Count is no longer supported because Collections permits
    direct observation of the length property and FRB explicitly separates
    observation of a direct property from a mapped property.
    -   ui/flow.reel/flow.js
    -   core/undo-manager.js
-   All occurrences of Object.defineBinding and Object.deleteBinding have been
    replaced with Bindings.defineBinding and Bindings.cancelBinding.
    -   ui/autocomplete.reel/autocomplete.js
    -   ui/bluemoon/tabs.reel/tabs.js
    -   ui/native/select.reel/select.js
    -   ui/video-player/video-player.js
    -   test/ui/button-spec.js TODO produces one error (regression)
    -   test/serialization/serializer-spec.js

Tests migrated:

-   bindings/definebinding-spec -> bindings/spec
        Deferred bindings specs have been removed.  Deferred bindings are not
        supported at this time.  I found no uses of deferred bindings within
        Montage.
-   binding/self-binding-spec -> bindings/self-spec
    bindings/converter-spec -> bindings/converter-spec
        These specs passed before migration, but had deprecation warnings.
        I've renamed them and migrated their usage pattern to the new form,
        although the old forms are supported for migration purposes.
-   bindings/dependent-properties-spec -> deleted
        I've removed support for dependent properties.
-   array-spec -> deleted
        The Collections package subsumes this responsibility.
-   core/core-spec
        I've removed the tests for deprecated getProperty and setProperty.
        This role is now played by Collections.
-   core/change-notification-spec -> deleted
    propertychange-spec -> deleted
    getset-spec -> deleted
        Collections takes responsibility for shallow change notifications.
-   serialization specs
        Runs without modification, but decoupled binding descriptor check.  The
        spec was reaching into an implementation detail that changed.