diffusion models use trace molecule instead of atom, not running on start

[#47400721]
canvas zIndex needs to be 2 so realtime graphs show the data lines
Add experiment graphing from multiple sensors on a labquest
initial diffusion across a permeable membrane

[#47225527]

This needs story https://www.pivotaltracker.com/story/show/47225527 to behave more like the original SAM activity. Not sure why the top elements are not aligned even though the div elements are aligned correctly.
auto-enable focus only on Interactive Browser

[#47570983]
restore Interactive Browser energy graph

TODO: needs to calculate correct sample rate via
data from iframe postMessage API
Revert "canvas zIndex needs to be 2 so realtime graphs show the data lines"

This reverts commit c9c7c678ad126c181b685cb0012c853e0859a041.

The canvas has to be under the SVG plot rect so the plot rect
can catch pointer-events in IE9 and IE10.

The plot rect needs to be transparent to be able to see the
plotted lines in the Canvas element.
Items in "Extras" are now sortable

[#47588239]
new modeler outputs: tickCounter, newStep

[#47596415]

These are needed so we can get these values when communicating to an Interactive embedded in an iframe
using the iframePhone postMessage API.
update/refactor grapher structure and API

[#47596415]

Lab.grapher has been refactored to use a pattern more similar
to other code in the project. An api object is created and
returned when a new Lab.grapher object is created.

A number of functions and variables that weren't used externally
have been removed from the API.

In addition the functions exposed by the api object now use
camelCase names.

External programs within Lab that use the API have been updated.

Nominally a new feature exposed by this is that the 
Energy Grapher in the Extras section of the Interactive Browser
page now both works and supports stepForward and Backwards properly.

When the iframePhone postMessage API is initialized it can now take
and optional callback to run after successful communication
with the Interactive embedded in an iframe is established.

In addition a postMessage queue is established on initialization
and any postMessage invocations that occur before communication
is successfully established are queued to run later.

The 'get' eventType in the iframePhone postMessage API is fixed
(it didn't work because it was communicating the propertyValue 
in an attribute named "value" instead of "values".

TODO/FIXME: When a new Lab.grapher object is created it doesn't
calculate the size of its container properly if the container
is not visible. It would be useful to have a way of handling
this more effectively than making the destination DOM object
visible during initialization and then hiding it if it should
not be visible.
Don't register 'keydown' handler multiple times in interactive controller

[#46375033]

Previously each time model was loaded, a new keydown handler was
added. That worked, as also new model_player was created. After
refactoring it was causing problems.
Use 'showClock' option to control clock display on play/pause button

[#46375033]
Don't show clock in the model area

[#46375033]

As now it's shown on the play/pause button.
Change order of buttons in playback controller

[#46375033]
Display grid lines on bar graphs

[#44616153]
Disable axis rendering, also remove 'ticksSubdivide' option

[#44616153]
Treat bar graph 'width' option as width of the bar itself

[#44616153]

Not as width of the most outer container (as it was earlier).
Also move labels to the left side of the bar graph (to fit Upstatement
design).

TODO: change 'width' to 'barWidth'. 'width' should be reserved for
options setting width of the most outer container. Also fix existing
interactives.
Style container of the bar graph

[#44616153]
Change orientation of the triangular indicator in bar graph

[#44616153]

As labels are now on the left side.
Fix interactives which are broken after bar graph width function change

[#44616153]