JS: ensure any timeListeners are notified whenever the current tick is changed

This includes when the eventManager is reset.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: give the event package its own error exeception type to avoid relying on sandwell packages

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: use an Array of Events internally as we can avoid bounds-check on access

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: find the event insertion index using a modified binary Search rather than linear

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

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