support 'render in iframe' on Interactive browser page

[#42718321

Uses and extends PostMessageAPI
loadInteractive PostMessage, parentMessageApi optional arg: controller
MD2D controller can load model from passed argument

[#42718639]

Load new model from argument rather than with ajax call

  interactivesController.loadModel(modelId, md2dModelObject)

md2dModelObject is an optional argument, if not passed an AJAX call
will be performed.
loadModel PostMessage, reloads model from object

[#42718321]
add modelEditor to Interactive Browser

[#42718321]
Proxy D3 dispatched events through ParentMessageApi

[#42718321]
iframePhone addListener & removeListener to dynamically handle msgs.

[#42718321]
EnergyGraph uses messages to update model data from ticks.

[#42718321]
'addListener' in ParentMessageAPI includes optional properties list.

[#42718321]

When the event is triggered, the message sent to the parentFrame will
include the model property values named in the list.
KE and PE properties returned from interactives iFrame on 'step' events.

[#42718321]

TODO:  Timing (model step interval) needs to be set correctly.
finish getting benchmarks working with postMessage

[#42718321]

The actual MD2D benchmarks have been moved out of the
application controller and are now part of MD2D dir tree.