Bug 77992 part 2 - Make event.timeStamp use TimeStamp value based on a pref; r=smaug

Note that this pref isn't fully live since the timeStamp member of the event
interface is [Pure] and so values will be cached.
Bug 77992 part 3 - Make event.timeStamp return a DOMHighResTimeStamp; r=bz

Even when dom.event.highrestimestamp.enabled is false and we should return
a DOMTimeStamp (=unsigned long long), we still just return a double since that's
what would happen anyway when we convert the DOMTimeStamp to a Javascript
Number and it simplifies the code significantly to just always return a double.
Bug 77992 part 4 - Add mochitests for event.timeStamp; r=masayuki
Bug 1021312 - Wrap strings in CloneNonReflectors. r=mccr8
Bug 1021312 - use a fresh zone for xpcshell. r=mccr8
Bug 1021312 - Tests. r=mccr8
Bug 1021244 - Switch the browser-element API to Cu.exportFunction. r=baku
Bug 987111 - Temporarily waive Xrays on the aOptions argument passed to mozId.watch and mozId.request. r=jedp

Bug 1011084 is getting hung up on various things, and we're currently blocked on
it because Object Xrays filter out callables. So let's just turn off Xrays here
for that case, so that we can enable them everywhere else.
Bug 987111 - Add an assign() method to MutablePropertyDescriptorOperations. r=terrence

It's unfortunate the we need to operate on the raw JSPropertyDescriptor for
|other|, but the specialization that makes Handle<JSPropertyDescriptor> work is
declared later in the file, which isn't kosher.
Bug 987111 - Introduce a method to determine whether a given PropertyDescriptor is an accessor prop. r=terrence
Bug 987111 - Add test coverage to make sure we don't add new Xrayable functionality without auditing it. r=gabor
Bug 987111 - Proxy::set should create enumerable properties. r=efaust

Properties are supposed to be enumerable by default. It's unfortunate that
the default is reversed in SpiderMonkey.
Bug 987111 - Fill out existing_desc with all properties, not just |own| ones. r=gabor

This gives us strictly more information than we had before, which turns out to
be useful. We can still get the old behavior by testing the identity of
desc.object(), which I've done in one of the two existing uses for existing_desc.
The other (in DOMXrayTraits::defineProperty) is actually more correct with the
full (non-own) lookup.
Bug 987111 - Handle the Object.prototype case in Xray getPrototypeOf. r=gabor
Bug 987111 - Make JSProto_Object COWs take precedence over Xrays. r=gabor
Bug 987111 - Implement resolveOwnProperty and enumerateNames for Object instances. r=gabor
Bug 987111 - Implement defineProperty for Object Xrays. r=gabor
Bug 987111 - Implement delete_ for Object Xrays. r=gabor
Bug 987111 - Flip on Object Xrays. r=gabor
Bug 987111 - Tests. r=gabor