Bug 990290 - Stop using ye olde JS_InitClass for XBL class objects. r=bz
Bug 990290 - Expose JSAPI functions for creating and manipulating scripted WeakMaps. r=terrence
Bug 990290 - Remove unnecessary conditional and unindent. r=bz
Bug 990290 - Remove silly LRU cache of nsXBLJSClass instances. r=bz
Bug 990290 - Stop using the full-blown class object setup for precompilation. r=bz
Bug 990290 - Null-check AudioNode's mContext during unlink. r=ehsan

Unlink can happen twice, apparently.
Bug 990290 - Store class objects in a weak map off the XBL global. r=bz

Note that we simultaneously rip out all of the crazy lifetime management for the
dynamic JSClasses here (it would be nice to do that in a separate patch, but it's
all kind of tied up together). With this patch, we simply have one dynamic JSClass
per class object, which is deleted in the finalizer. In the next patch, we remove
dynamic JSClasses entirely.
Bug 990290 - Get rid of dynamic XBL JSClasses. r=bz
Bug 990290 - Remove JS_GetObjectId. r=terrence