Add failing spec for addBeforePathChangeListener

The changeHander method isn't being called when expected;
it's being called after the change has been applied.
Fix addBeforePathChangeListener, call before

When the path was changed through a binding, preserve the before
semantics of the scope.

This was provided by Kris, but does cause a failure in one of the
existing specs
Add externals.jsdoc file for JSDoc

Only a few classes were added.
Update overlay.js

In Firefox prevents a:
"TypeError: Not enough arguments to CustomEvent.initCustomEvent."

This error doesn't allow the overlay to be shown again.
RadioButtonController jsdoc.
RangeController jsdoc.
Add failing specs for RangeController

for calls to range change listeners when using multiSelect = false,
and using the selection of one RangeController as the content of
another.
Merge pull request #1342 from HugoDaniel/patch-1

Fix a CustomEvent error in Firefox

"TypeError: Not enough arguments to CustomEvent.initCustomEvent."
Fix Text public API jsdocs
Fix Repetition public API jsdocs
Fix Condition public API jsdocs
Fix Substitution public API jsdocs
Add UnitDeserializer @lends
Partial fix Component public API jsdocs

Properties reviewed: willDraw, draw, didDraw, needsDraw and element.
Merge pull request #1343 from asolove/controller-docs
Merge pull request #1340 from aadsm/externals-jsdoc

Add externals.jsdoc file for JSDoc
Update Release notes
Initial approach to fixing rangeController selection.

- Selection is always an array and is not settable. Uses Stuk's splice duck-punch to maintain invariants.
- Does not yet guarantee uniqueness, but can be made to do so.
- RangeController tests pass, with the ones that directly set the selection removed.
- Other tests, including AbstractSelect, fail. Will require code changes there now that selection is non-settable.
Amendments to first pass JSDocs
Fix AbstractSelect to work with new RangeController.

- Depends on frb#31 and frb#32.
- Adds some new tests and makes existing ones pass under the new restriction that RangeController#selection must be modified in-place.