JS: pull all of the event tracing writer logic out to an EventRecorder class

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: begin factoring the event verification code away from static state

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove the static state from EventTracer, make it an explicit listener for events

Removes some odd initialization cases and explicitly makes this all stateful.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove all the synchronized marking from EventTraceRecord

The trace callbacks are all called while holding the eventManager's lock.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: New icon for the "Statistics" object

Signed-off-by: Harry King <harry.king@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>