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]
WIP: 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]
wip - fix resize of model for semantic layout system
w/no 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

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
Replace margins with paddings in semantic layout examples
Optimize semantic layout algorithm
Optimize performance of semantic layout algorithm

When layout meets specified criteria, positioning loop is being
finished.