Bug 1062077 - Introduce xpc::ErrorReport. r=bz

I've got it! Let's just wrap the JS thing in an XPCOM thing that duplicates
its fields with a different ownership model! We totally need another one of
those, right? And we could even stick it in XPConnect! </sarcasm>

In seriousness - the code to own, format, and display error reports is
currently spread between the JS engine, JSErrorReporters, an async Runnable
abstraction, and elsewhere. We need to condense it somewhere to start chipping
away at this mess.
Bug 1062077 - Hoist console logging duties into xpc::ErrorReport. r=bz
Bug 1062077 - Switch SystemErrorReporter to xpc::ErrorReport. r=bz
Bug 1062077 - Report exceptions immediately for non-window globals, and assert that we have a window in ScriptErrorEvent. r=bz

Note that this is a no-op right now, because NS_ScriptErrorReporter currently
relies on nsIScriptContext to get its global, and thus will only ever operate
on window globals. But that will change once we merge this code with that in
xpc::SystemErrorReporter.
Bug 1062077 - Merge NS_ScriptErrorReporter and xpc::SystemErrorReporter. r=bz

We keep the latter name because it's referenced in more places. Error reporters
will go away entirely in bug 981187.
Bug 1062077 - Remove now-no-op error reporter munging in mozJSSubScriptLoader.cpp. r=bz

In the past this might theoretically have switched us from
NS_ScriptErrorReporter to xpc::SystemErrorReporter, but those have now been
merged.