Bug 1029933 - Give BackstagePass an Enumerate hook to match its NewResolve hook. r=Waldo

This is required in order to avoid exposing resolve hook effects when
Object.freeze() is invoked on the global. The freeze() call first enumerates
the object, after which point any lazy properties need to be resolve so that
we can safely mark the object as non-extensible.
Bug 1029933 - Tag JSStdName entries by JSProtoKey rather than a js::Class pointer. r=Waldo

The former is strictly more information, which matters in the case of Error
objects where multiple JSProtoKeys share a js::Class.
Bug 1029933 - Introduce the concept of "dependent" standard classes and handle them in the ClassSpec infrastructure. r=Waldo
Bug 1029933 - Introduce and use ParentKeyForStandardClass. r=Waldo
Bug 1029933 - Tweak GenericCreateConstructor to make it usable with Error. r=Waldo
Bug 1029933 - Make Error use a ClassSpec. r=Waldo