expose existing image properties to scripting api

[#57828832]
on more model font-scale layout test Interactive

[#57248996]
This adds a fifth interactive for testing font-scaling
issues in the model container.

This one adds a fontScale attribute with a value of 1.5
to the Interactive definition.
Merge pull request #44 from concord-consortium/textbox-fix

Textbox font-size fix
QD: Use Lifetime to decide whether atoms can be deexcited through collisions

As with Classic MW, atoms should not be deexcitable through collisions
immediately after being excited, but are instead stable for a certain
lifetime. After this lifetime, a collision can deexcite them either via
radiation or radiationless transmission.

Kept the stochastic method of determining spontaneous emission.

The stochastic method would not be easily useable for thermal transmission
because we would need to know the frequency of collisions.

[#58011196]
QD: Use lightsource property from model definition

[#56364006]
Fix model JSON editor when model is defined inside Interactive JSON

[#58080048]
Fix "100 atoms" sample interactive

[#58170168]

The script attached to checkbox was wrong.
Fix "100 atoms (conceptual version)" sample interactive

[#58170168]
disable data games on production in config.sample

this will fix console error messages as well as interactive
issues when interactives are embedded in different domains
[#58190674]
don't use fingerprint library on production
Merge remote-tracking branch 'origin/expose-image-properties'
fix serialization of arrays

previously this code would modify the array if it was
a standard array and a 'count' was passed in. If count
was smaller than the length of the array the source 
array would be chopped. This change might result in a
performance decrease and garbage collection increase
of the serialize method because it now copies the full 
array before changing its size. However, as far as I can 
tell this method is not used on a regular basis so these
issues should not mater.
[#58243476]
benchmark to see how many atoms md2d can handle
re-enable compression and mangling

uglifyjs version 1 did this by default version 2
requires the compressor and mangler to be turned on
this has the side effect of preventing safari crashes
[#58311420]
[#57584670]
Simplify and fix scripts in "The Number-Volume Relationship"

[#56975618]
[#58170104]

Parameter is now used, so the pulldown will be reset correctly.

Note that we use .batch() instead of suppressRepaint option. Also
inside .batch() we can't use getNumberOfAtoms() function, so we have
keep track of the real number ourselves.
Replace "suppressRepaint" option with .batch() in interactives' scripts

[#58170104]
Remove completely support for obsolete "suppressRepaint" option

[#58170104]
Remove completely support for obsolete "deserialization" option

[#58170104]

We can use .batch() instead.
fun script for counting number of atoms in models
Safari bug: closure variable w/ same name as getter

[#57584670]