Make sure all arguments pub() passes to postMessage are structured-cloneable.

This avoids throwing an exception for code like 'catch(e) { pub("error", e); }'.
fix handling of empty string enums
Merge pull request #376 from darobin/develop

fix handling of empty string enums
Merge branch 'develop', remote branch 'origin' into develop
v3.2.31
Merge pull request #368 from jyasskin/feature/pub-non-cloneable

Make sure all arguments pub() passes to postMessage are structured-cloneable.
Import WebIDL2 for parsing contiguous IDL blocks.

From https://github.com/darobin/webidl2.js/blob/develop/lib/webidl2.js
Copy webidl-oldschool files as the basis for the contiguous webidl processor.
Implement the new IDL output mode, with passing tests.
Split finding <dfn> elements from using them to link <a> tags.

This lets other modules use the definitionMap.
Add the CSS when only contiguous IDL is used.
Link IDL declarations to their prose definitions and test this.
Fix a bug in nullableArray support.
Simplify the code by removing the WebIDLProcessor class
and by defining local functions without 'var'.