Stop passing owned strings to fail!().

The ~"string" expression is being removed in upstream rust.
Use ByteString in XHR
auto merge of #2301 : Manishearth/servo/xhr-bytestring, r=Ms2ger

I had used DOMString in place of ByteString while implementing the XHR webidl, now that we have ByteString, I'll switch to that.

Blocks #2282
auto merge of #2297 : Ms2ger/servo/fail-owned-str, r=jdm

The ~"string" expression is being removed in upstream rust.
Use new attribute syntax
Fix some private type export warnings
auto merge of #2303 : Manishearth/servo/privtype, r=jdm
auto merge of #2302 : Manishearth/servo/attr, r=Ms2ger
Turn on GC all the time. Fix rooting errors during parsing and storing timers. Fix borrow errors during tracing.
Implement safe rooting strategy via Unrooted, Root, JSRef, and JS.
Remove JS::get/get_mut to enforce sound rooting practices.
Move WebIDL methods to traits implemented by JSRef types.
Remove abstract_self.
Move all methods on T to JSRef<T> or JS<T> as appropriate.
Allow controlling GC zeal via JS_GC_ZEAL environment variable.
Move stack roots into Root types instead of RootCollection, removing the aribtrary 10 roots per stack frame restriction.
s/Unrooted/Temporary/g
Root Temporary values for the duration of their lifetime.
Store per-ScriptTask RootCollection in TLS and use that in favour of per-frame collections.
Remove all root collections.