perf-817543: Calculate Parameter.defaultValue lazily

In the case of settings, doing eager evaluation of defaultValue was
causing performance problems for the Mozilla embed because looking
through preferences was fairly slow, and it was happening in just the
wrong place.
perf-817543: Only read system prefs when needed

We can now use gcli-only settings without needing to load system prefs.
This allows us to do things like check if we need to use the intro
command without and pref related slowdown.
Merge branch 'master' into perf-817543
leak-795988: Remove the global commandOutputManager

Sharing a commandOutputManager wasn't the common case, and it caused
confusion, so we make the default to be one commandOutputManager per
requisition, and allow configuration to share them.

This means that Requisition adds a 3rd parameter (a custom COM) which
defaults to a new COM if null. This is then used by tests and Display
implementations to configure a COM. Focus and OutputTerminal then use
the COM in their Requisition rather than having an explicit COM of
their own.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
leak-795988: Tidy up NodeType empty node list

Potential leak from storing data for longer than we should.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
leak-795988: Update event logging output

We were getting some error messages about event listeners on shutdown
while looking for memory leaks. This clarifies the logging situation
and allows us to use eventDebug while running from node (which we do to
help with unit tests)

Signed-off-by: Joe Walker <jwalker@mozilla.com>
leak-795988: Fix event removal filter logic

Previously we would remove an event handler if either the function or
the scope matched. This fixes that error, and clarifies the logic.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
leak-795988: Correctly remove resize handler

We were incorrectly removing an event handler that we hadn't added in
some situations. Whilst this didn't actually cause a memory leak, it
did confuse the event logging.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
leak-795988: make environment data self-describing

42 was somewhat cryptic (it was just something other than nothing) so
replace this with something more self describing.
See also https://bugzilla.mozilla.org/show_bug.cgi?id=795988#c15

Signed-off-by: Joe Walker <jwalker@mozilla.com>
Merge branch 'leak-795988'
Merge branch 'perf-817543'