Cleanup / refactor model view and renderer

[#44616231]

Useful (or necessary...) before adding onClick events support.
Cleanup model view reset, init, repaint and resize operations

[#44616231]

Previously various operations were triggered without any specific
reason and when initialization is becoming to be important, that is
causing problems.
Implement support of custom click handlers in model view

[#44616231]

Also, adapt renderer to support it correctly.
Add 'onClick' function to the Scripting API

[#44616231]
Add class 'atom' to atoms

[#44616231]

To easier select them, e.g. in onClick() call.
Update docs of Scripting API onClick() function

[#44616231]
Add a new interactive presenting onClick function

[#44616231]
Fix checkbox margin if text is to the left
remove older gravitational field test Interactive
yAxisNumberWidth: examine both min/max settings

[#45855867]

The intent is to estimate the maximum rendered width
for the Y axis numeric labels, so examine both the
max and min Y axis settings.

TODO: make even more robust by examining all numeric labels.
Fix a function which calculates contrasting color for clock

[#44747995]

Use simpler algorithm provided by W3. Also, d3.rgb was failing
from time to time, as we use rgba strings sometimes.
VISUAL:Recycling Interactives: center radio buttons
Amino Acid: width of side buttons: 14em => 17em
Restore original pendulum for some interactives

Certain test/demo interactives use the pendulum model but don't work well with the updated InquirySpace pendulum model, which has had various physical quantities (masses, bond strengths, etc) adjusted to work well with macroscopic units translation

[#45952505]
Allow floating-point em dimensions

Previously creating a template with a dimension such
as "width": "1.5em" would break the layout because
it wasn't being parsed correctly.
y-axis:reduce distance between numbers/label

[#45855867]
update springy-pendulum

IS [#45966989]

FIXME: Pendulum Angle not graphing
more consistent references to Van der Waals

and other similar edits (with help from Sarah)
Explicitly coerce 'visible' to fill-opacity 1 or 0

Safari was coercing d.visible === false in the fill-opacity attribute setter to the string "false", rather than to 0.

[#45972517]
Restore accidentally-reverted IS pendulum model

[#45952505]