Add 'isPropertyWritable' method to PropertySupport mixin

[#62719204]
Retain all properties (except outputs) that are bound to some widgets

[#62719204]
Update "onLoad" script in "Quantum Collision" interactive

[#62719204]

It ensures that textbox is always correct, even when related parameter
is retained during reload.
Let authors decide if property bound to component should be retained

[#62719204]

... during model reload / reset.
Use property binding in "Intermolecular Attractions and States of Matter"

[#62719204]
Fix "Diffusion & Molecular Mass", do not set params in "onLoad"

[#62719204]
Update "Pendulum" interactive

[#62719204]

Remove 'parametersToRetain' list from reloadModel call (these
parameters are retained by widgets anyway).
Remove 'reset' button which is now unnecessary.
Update "Spring" interactive

[#62719204]

Remove 'parametersToRetain' list from reloadModel call (these
parameters are retained by widgets anyway).
Remove 'reset' button which is now unnecessary.
Update "onClick Demo", use property binding instead of action scripts

[#62719204]
Update "Gravitational Fields (property-pulldown)" interactive

[#62719204]
Fix "One Radial Bond" interactive

[#62719204]
graph-controller.js: Extract data-set.js,  abstract event listening.

Main goal was to extract DataSet class into (data-set.js).

In the course of doing so, I also felt that the event handling was getting
too complicated, so listening-pool.js was pulled out too.

TODO: Tests for listening-pool.js listening-pool.js.
TODO: node_modules/.bin/mocha test/mocha/md2d/graph-controller-spec.coffee fails still.
Move data-set to common/controllers for now.
code-cleanup and quick comment-review.
ListeningPool: fix D3 listener removal

.on("type") returns registered listener (if any)
.on("type", null) removes registered listener
Use DispatchSupport instead of jQuery events in DataSet class

Just for consistency with rest of the project.
DataSet: update model reference when a new model is loaded
data-set.js : remove useless comment.
graph-controller.js: ✔graph-controller-spec: register truncation handler

Passes the graph-controller-spec.coffee test.
Was missing one DATA_TRUNCATED handler.
GraphController.js : RedrawCurrentStepPointer now takes step argument.