Add executable script to run Energy2D converter
E2D converter: Add small offset to Y position of thermometer

[#81001908]

So the readings in Java E2D and JS E2d are more similar.
Energy2D converter: Parse texture background color

[#80867756]
E2D converter: fix thermometer offset calculation

[#71755062]
Sensor connector now supports automatically launching

[#74979282]
Only stop the sensor connector if it's currently collecting.

Otherwise, it might erroneously stop another instance that is
collecting.

[#81782738]
Add setting to skip PE check when adding or dragging atoms

This is a new top-level property, skipPECheckOnAddAtom, default=false.

This is used every time model.addAtom is called (e.g. by a script), and
when an atom is dragged by a user when the model is stopped.

It is slightly finer-grained than the existing "checkLocation" option
that is used in setAtomProperties, as it only skips PE calculation,
not obstacle- or border-checking.

This is for the bond-creation models [#74687984] and [#74688264]

[#82674410]
Bump sensor-connector-interface version to fix reset bug
Make text not clickable if it's attached to an atom or obstacle

Text boxes currently capture clicks to allow an author dragging while in
"authoring mode." It is not clear whether authoring mode is still used,
but in any case, this dragging would be pointless for atoms attached to
objects. Therefore, this does not affect the current behavior.

This allows us to have large element symbols in [#74688264]

[#82686348]
Fix interactive reload bug with sensor connector/labquest 2

[#82692878]
Add/Reset annotations in graph controller and scripting-api

This simply exposes the addAnnotation/resetAnnotation API from the
lab-grapher, and makes it available to the scripting-api.

[#74688264]
Sensor Connector: Distinguish between the plugin not being installed or it being blocked.

[#82588432]
Update lab-grapher submodule to fix Safari bug
Fix a bug in photon emission from deexciting an atom
Bump sensor-connector-interface version to fix launching bug [#83424586]
Merge branch 'master' into codap-default-export

Conflicts:
	src/lab/models/md2d/models/metadata.js
	test/fixtures/mml-conversions/expected-json/angular-bonds.json
	test/fixtures/mml-conversions/expected-json/custom-element-colors.json
	test/fixtures/mml-conversions/expected-json/custom-lj-properties.json
	test/fixtures/mml-conversions/expected-json/draggable-atom.json
	test/fixtures/mml-conversions/expected-json/electric-field.json
	test/fixtures/mml-conversions/expected-json/ellipse-alhpa-at-props.json
	test/fixtures/mml-conversions/expected-json/gravitational-field-100.json
	test/fixtures/mml-conversions/expected-json/gravitational-field-200-default.json
	test/fixtures/mml-conversions/expected-json/gravitational-field-400.json
	test/fixtures/mml-conversions/expected-json/gravitational-field-off.json
	test/fixtures/mml-conversions/expected-json/heatbath.json
	test/fixtures/mml-conversions/expected-json/image-layers.json
	test/fixtures/mml-conversions/expected-json/image-visible-and-hidden.json
	test/fixtures/mml-conversions/expected-json/immovable-atom.json
	test/fixtures/mml-conversions/expected-json/invisible-obstacle.json
	test/fixtures/mml-conversions/expected-json/mark-atoms.json
	test/fixtures/mml-conversions/expected-json/mazeGame.json
	test/fixtures/mml-conversions/expected-json/no-atoms.json
	test/fixtures/mml-conversions/expected-json/no-electric-field.json
	test/fixtures/mml-conversions/expected-json/obstacle-color.json
	test/fixtures/mml-conversions/expected-json/obstacle-mass.json
	test/fixtures/mml-conversions/expected-json/obstacle-probes.json
	test/fixtures/mml-conversions/expected-json/one-textbox.json
	test/fixtures/mml-conversions/expected-json/point-restraint.json
	test/fixtures/mml-conversions/expected-json/quantum-collision.json
	test/fixtures/mml-conversions/expected-json/rectangles.json
	test/fixtures/mml-conversions/expected-json/show-charge-symbols.json
	test/fixtures/mml-conversions/expected-json/show-vdw-lines.json
	test/fixtures/mml-conversions/expected-json/simple-ke-shading.json
	test/fixtures/mml-conversions/expected-json/solvent-dielectric-constant.json
	test/fixtures/mml-conversions/expected-json/sunOnGround.json
	test/fixtures/mml-conversions/expected-json/target-game-distance.json
	test/fixtures/mml-conversions/expected-json/time-step-5.0.json
	test/fixtures/mml-conversions/expected-json/two-charged-atoms-with-shading-image.json
	test/fixtures/mml-conversions/expected-json/two-charged-atoms-with-shading.json
	test/fixtures/mml-conversions/expected-json/two-charged-atoms.json
	test/fixtures/mml-conversions/expected-json/two-diatomic-molecules.json
	test/fixtures/mml-conversions/expected-json/two-obstacles.json
	test/fixtures/mml-conversions/expected-json/vectors.json
	test/fixtures/mml-conversions/expected-json/view-refresh-interval-10.json
	test/fixtures/mml-conversions/expected-json/viscosity-friction.json
	test/fixtures/mml-conversions/expected-json/visible-and-invisible.json