Guardfile: separate watchers for test/vows, test/mocha

makes running tests faster when making changes in test source files
Makefile: minor correction
cleanup and fix some VOWS md2d tests
support model with 0 atoms

[#37958569]

includes new tests

/examples/interactives/interactives.html#interactives/basic-examples/empty-model.json
change dom/css id: molecule-container => model-container

[#41923323]
move custom MD2D models into models/md2d

[#41923323]
new required "type" property for MD2D model json: "md2d"

[#41923323]
extract interactive controller and components from MD2D

[#41923323]

There is a new directory for the interactive controller
and controllers for individual interactive components:

src/lab/interactive/controllers/
|-- bar-graph-controller.js
|-- button-controller.js
|-- checkbox-controller.js
|-- dg-export-controller.js
|-- graph-controller.js
|-- interactives-controller.js
|-- numeric-output-controller.js
|-- parent-message-api.js
|-- pulldown-controller.js
|-- radio-controller.js
|-- scripting-api.js
|-- slider-controller.js
`-- thermometer-controller.js

The following controllers are still in the md2d dir tree:

src/lab/md2d/controllers/
|-- compare-models-controller.js
|-- model-controller.js
`-- scripting-api.js

The scripting API is now divided into a universal API:

  src/lab/interactive/controllers/scripting-api.js

Which is extended by an optional model-specific API:

  src/lab/md2d/controllers/scripting-api.js

The JSON files defining a model used in an Interactive now
have a new required "type" property to indicate the type
of the model.

Currently only the "md2d" model type is supported.

There is no user-visible increased functionality at this point.