Bug 907508 - Drop the number of slots on XPConnect globals from 2 to 1. r=bz

In the old world, XPConnect globals had one reserved slot, which was used to
store a private pointer to the XPCWrappedNativeScope.

Then, in the new DOM bindings landing (bug 740069), we added two slots, one
for DOM_GLOBAL_OBJECT_SLOT, and one for DOM_PROTOTYPE_SLOT.

Then, in bug 761707, we removed DOM_GLOBAL_OBJECT_SLOT, but the slot count
remained at 3.

Then, in bug 797821, we stopped storing the XPCWrappedNativeScope in the slot
on the global, and dropped the XPConnect global count from 3 to 2.

Given the above, we can safely drop it to 1, here. It's easy to check that
this is correct, because reserved slots for globals have a different offset,
which is JSCLASS_GLOBAL_SLOT_COUNT. And according to mxr, the only thing
defined in terms of that is DOM_PROTOTYPE_SLOT (which takes the same value).
This means that all subsequent slots on the global are unused.
Bug 907508 - Drop the slot count for worker globals from 3 to 1. r=bz

Continuing the analysis of the previous patch, we actually have two free slots.

The first comes from the removal of DOM_GLOBAL_OBJECT_SLOT, as in the previous
patch.

The second comes from the fact that we mirrored the XPConnect slot for the
XPCWrappedNativeScope (so that slot offsets would be the same for workers and
non-workers), but didn't drop the slot count in bug 797821.
Bug 907508 - Define the slot count for xpconnect and worker globals in terms of the slots defined in DOMJSClass.h. r=bz
Bug 907508 - Provide a mechanism for adding extra slots for XPConnect globals. r=bz

mhordecki needs this in bug 898559.