JS: stop trying to preserve the valueString in the append case

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: move splitting into KeyInput.parse, remove appendable from that type

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: pull all appendable keyword logic into those types that require it split

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: move the updateInput call into apply() in preparation for collapsing the call stack

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: fix up direct constructor calls in the testsuite

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: explicitly test if Input object exists, and if we are applying to a Group

Remove the apply method that redirected depending on the type of Entity.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: begin consolidating code in apply() as the lowest-level helper

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: begin flattening the call stack for applying input programmatically.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: simplify the KeywordIndex constructor

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: restore the echo of input lines to a log file, improve error message for bad input

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: warn if a log file cannot be created, but still load the input file

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add different prefix for input errors, shorten message

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