Bug 975042 - Remove the special COW support for Date. r=peterv

As soon as Date is on Xrays, this stuff won't work anyway. Henceforth, content
access to chrome Date objects is forbidden, and APIs should use something like
|new contentWindow.Date()| for any Date object they wish to expose to content.
Bug 975042 - Basic Xray infrastructure and boilerplate. r=peterv

All of this machinery asserts if it actually get used. But it won't be used at
present, because we have an empty whitelist of JSProtoKeys.
Bug 975042 - Implement the easy trait hooks. r=peterv
Bug 975042 - Implement createHolder. r=peterv
Bug 975042 - Implement getPrototypeOf. r=peterv
Bug 975042 - Make enumerateNames trap virtual. r=peterv
Bug 975042 - Implement resolveOwnProperty and enumerateNames trap. r=peterv
Bug 975042 - Enable JS Xray for the Date object. r=peterv
Bug 975042 - Update expando sharing tests to test the Xray-to-JS case. r=peterv
Bug 975042 - Tests. r=peterv

We try to make this test machinery reusable for future Xrayable JS objects.
Bug 975042 - Create NetworkStats dates in the window's scope. r=fabrice
Merge m-c to m-i
Bug 986542 - Don't categorically disable script for detached docshells. r=bz
Bug 986762: don't release DataChannelConnection on transient thread on readblob failure r=smaug
Bug 983948 - Temporarily increase the per-test browser-chrome default timeout to 45 seconds
Merge m-i to m-c
Merge b-i to m-c