Bug 850681 - Part 1: Use the test name 'leakcheck' rather than 'automationutils.processLeakLog()'; r=ted

Reduces the chance of line wrapping in the TBPL annotated summary, and makes
my eyes bleed less every time I see leak failures.
Bug 850681 - Part 2: Wait until the full leak log has been processed before outputting the leak total; r=ted

Will allow the addition of an overview of the leaked objects, in part 4.
Bug 850681 - Part 3: Output all of the leaked object lines as TEST-INFO rather than a combination of TEST-INFO and TEST-UNEXPECTED-FAIL; r=ted

Since the main leak summary will soon include an overview of the leaked objects,
we no longer need/want a subset of the individual leak lines showing up in
TBPL's annotated summary (TBPL's parser matches on 'TEST-UNEXPECTED-FAIL').
Bug 850681 - Part 4: Add a partial list of leaked objects to the leak summary, to allow TBPL to make bug suggestions; r=ted

Current summary line:
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 216 bytes during test execution

With patch parts 1-4:
TEST-UNEXPECTED-FAIL | leakcheck | 180 bytes leaked (Mutex, ReentrantMonitor, nsRunnable, nsTArray_base, nsThread)

...or with ellipses if more than 5 objects:
TEST-UNEXPECTED-FAIL | leakcheck | 3184 bytes leaked (BackstagePass, CondVar, Mutex, ReentrantMonitor, SharedScriptableHelperForJSIID, ...)
Bug 850681 - Part 5: Clean up logging; r=ted
Bug 850681 - Part 6: Clean up log parsing conditionals & move the leak threshold reminder to the calling function; r=ted

The same threshold is used for all leak logs processed from the test run, so
unnecessary to repeat for each.
Bug 850681 - Part 7: Use the cleaner |with open() as foo| pattern & and don't close/reopen the log unnecessarily; r=ted
Bug 850681 - Part 8: Only parse the leak log once; r=ted

The existing code parses the leak log twice - first time to output the
raw log lines & and the second to output the analysis of them.

As much fun as it is to loop all the things (\o/), let's not.
Bug 850681 - Part 9: Return early if possible during leak summary generation; r=ted

Now that we close the log file before summary generation (rather than at the
end of processSingleLeakFile()), we can return early in some cases during
leak summary generation.
Bug 850681 - Part 10: Tweak comments; r=ted
Bug 850681 - Part 11: Move processString to the message part of log lines & remove unhelpful process IDs; r=ted

Our standard logging format is:
TEST-{INFO,UNEXPECTED-FAIL} | testName | message

For leak logs from processes other than the main process (eg plugin processes),
currently processSingleLeakFile outputs:
TEST-{INFO,UNEXPECTED-FAIL} | foo process 123 | testName | message

This patch turns these into:
TEST-{INFO,UNEXPECTED-FAIL} | testName | foo process: message

Note: The process ID is contained in the raw leak log (which gets printed to the
log anyway), so we don't need to repeat it in the main summary log lines. In
addition, the variable process ID often breaks TBPL bug suggestions, so should
be avoided where possible.
Bug 827486, part 1: add JSImplementation extended attribute. r=bz
Bug 827486, part 2 - Refactor example class codegen into common base class. r=bz
Bug 827486, part 3 - add dependencies for CGBindingImplClass. r=bz
Bug 827486, part 4: copy parts of example generator to JS impl generator. r=bz
Bug 827486, part 5: add the main JS impl code gen. r=bz
Bug 827486, part 6 - generate headers and code for JS implemented WebIDL classes. r=bz
Bug 827486, part 7 - add basic code gen test. r=bz