JS: Move VAO tracking to the renderables from the RenderWindow

This allows assets to have more intelligent control over how VAOs are
used.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Convert Mesh Shaders to be configured by preprocessor definitions

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add new threshold user callback to reduce number of redundant checks

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: pull the parsing context into the Keyword struct we pass around

Cuts down on the arguments a little bit.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: encapsulate all Input-argument state in KeywordIndex objects, adjust places applying inputs programmatically

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: fold the lookup of the Input object in InputAgent.apply

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: allow an extended time format in the TimeSeries inputs

Allow a format that is time-offset only, of the form {hh}:mm:ss where hours can be
any integral value, not limited to 0-23.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: update version to 2013-51

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>