Add initial semantic-layout prototype.

Semantic-layout takes a JSON specification of containers
with properties such as 

{
"left": "model.right", 
"height": "model.height / 2"
}

and lays out the containers appropriately and populates
them with components.

The layout takes into account the sizes of the components,
currently just placed in flow-layout.
Add multi-row definition for components.

components: [[x, y], [z]] will place x and y on one
row, and z on a second row.
jsHint fixes
Add examples pull-down
Add semantic-layout and templates to layouts

[#43484407]
Use semantic-layout to layout out components.

Currently this is always use a default template ("simple").

Note: model currently does not resize correctly.

[#43484407]
Test with setting margin instead of padding

[#43484365]
Add ability to select different templates in interactive json.

Note, this will need adding to the interactive metamodel.

[#43484567]
Add semantic layout link to index

[#43484365]
Fix resize of model for semantic layout system
Size ModelView container bases height on width
use JQuery to set width of outerElement
restore correct version of MD2D Renderer
Prevent recreating model-container on int. update

Model container doesn't expect to get recreated on the
fly. Semantic Layout now works the same as the older
code, which did not re-create the model container if
it already exists.
Allow author to create template in interactive json

Authors can now use a string (e.g. "split-right") referring
to one of the pre-defined templates in templates.js, or
they can directly create the template in the json.

[#43484567]
Slightly change layout algorithm in semantic layout experiment

[#44281603]

Resizing of the model container + repositioning is in fact solving of
a linear equation needed to provide correct layout. Because of that,
resize model in a different way, which provides better convergence.
(TODO: still it is far from perfect, it's just experiment)

Previous method worked for most cases very precisely, however caused
problems for more complex setups, e.g.:

 {
  "id": "wide-right",
  "left": "model.right",
  "height": "model.height",
  "width": "model.width", // !!!
  "components": [
   "button2",
   "button3"
  ]
 }
Fix / simplify semantic layout algorithm

[#44281603]
Optimize semantic layout algorithm

[#44281603]
Add new example in semantic layout experiment

This example is a good test, as it was causing problems. Also,
rearrange order of components definitions. This should be done
automatically by the algorithm, but for now, it's author
responsibility to provide correct order.

E.g.:
when component A uses dimension of component B and component B
uses dimensions of component C, expected order of definitions is:
C
B
A
Update semantic layout in interactives context

[#44281603]