Bug 891891 - Print diagnostics when an XPCWrappedJS is QI-ed off-main-thread. r=mrbkap

Let's try to figure out which XPCWrappedJS is causing this. I've filed a reminder
for myself to back this out by sept 3.
Bug 907937 - Move string wrapping into the actual string wrapping method. r=billm

The current string->value->string setup is kind of silly. This also moves work
out of the jsval overload, which will be helpful when we inline the first part.
Bug 907937 - Remove isObject() checks, and stop using |vp| as an intermediary. r=billm

We can do this now that we're not trying to deal with strings at the same time.
Whitespace change in the next patch.
Bug 907937 - Whitespace change. r=billm
Bug 907937 - Move object wrapping into the object-overloaded wrap() function. r=billm

There are a couple of changes to the wrap code, so it probably needs to be
looked over.
Bug 907937 - Inline jsval wrapping overload. r=billm

This thing is small enough now that it can be inlined. This is already a significant
win because primitive jsval wrapping is now entirely inlined.
Bug 907937 - Optimistically check the CCW cache early in opt-build value wrapping. r=billm
Bug 907937 - Address review nits. r=billm

I normally roll these into the appropriate patches, but this queue moves a lot
of code around, and I'm afraid of a mismerge.