complete support for modelReset callbacks

Interactive components can now have optional modelLoadedCallbacks
and modelresetCallbacks.

Currently only the table and graph components implement
modelResetCallbacks.
inquiry-pendulum: Current Run table, Clear All button
implement simple serialization for table component
Some delinting
No need to call model's willReset if calling reset
table controller: can stream data from model

Added addNewRows (default: true) attribute.

Also added headerData. Now tableData and headerData
are serialized.
graph: enableAutoScaleButton, enableAxisScaling

Both have default values of true.

Disabling axis scaling also disables plot canvas
dragging/translation.
inquiry-pendulum p-graph: disable autoscale, axis dragging
inquiry-pendulum: update help tips
inquiry-pendulum: remove unnecessary titles

Layout looks better and allows the aspect ratio to
go up to 1.25
inquiry-pendulum: help tip edits, layout fine-tuning
inquiry-pendulum: increase rod length axis

To better how Rod length value of 200 cm
inquiry-pendulum-180: starting angles up to 180 deg
inquiry-pendulum-180: better layout
fix pendulum angle calcs: ang >= 90 or ang <= -90
table formatters: increase to 3 digits precision

FIXME: would like to be able to extract formatters from
propertyDescription.format -- but that isn't working.
pendulum-180: X axis on parameter graph => Starting angle
More lint fixes
.jshintrc: don't require hasOwnProperty in for..in

We use ES5, and have no need to write or include code that augments Object.prototype without at the very least making the augmenting property non-enumerable.
Fixup some "Demeter's Law" violations

Just a step toward minimizing the amount of code that has to know about the details of any given object's interface.