Bug 963321 part 1.  Add WebIDL parser support for having [Cached] dictionary attributes.  r=khuey

We don't know at handleExtendedAttribute time what the identifier will
map to, so have to do the check that [Frozen] is not being misused
later.
Bug 963321 part 2.  Add codegen support for [Cached] dictionary attributes.  r=khuey
Bug 963388.  Add support for nullable dictionary return values in callbacks and js-implemented bindings.  r=peterv
Bug 958667 part 1.  Make it possible to use multiple methods of disabling the visibility of a constructor at once, disabling it if any of them says it should be disabled.  r=peterv
Bug 958667 part 2.  Store in workers whether they come from privileged or certified apps.  r=khuey
Bug 958667 part 3.  Add helper methods for testing whether things should be exposed in privilegd or certified apps.  r=peterv
Bug 958667 part 4.  Hook up an AvailableIn extended attribute for interfaces.  r=peterv
Bug 958667 part 5.  Hook up AvailableIn for interface members.  r=peterv
Bug 963380.  Improve codegen for [Cached] and [StoreInSlot] attributes that have multiple wrapping paths to have less duplicated code.  r=peterv
Bug 965154.  Make the global scope polluter handle WebIDL Window objects.  r=peterv
Bug 965094.  Reconcile the behavior of the JSObject* argument for Func on interfaces and on interface members.  r=bholley
Bug 866222.  Just always define getInterface on the window for now, so we stop breaking people.  It'll go away once we ship WebIDL window.  r=peterv
Bug 967694.  Don't generate Xray resolveOwnProperty/enumerateOwnProperties hooks on WebIDL Xrays for plugin-loading elements, because those elements really only want to have the hook called when they're being touched by script from the same website.  r=bholley