Port selector matching to use atoms.

Removed the Lowercase new type. This does mean that this
code path is slightly slower for now. This is because
find_equiv() doesn't work with atoms in hash tables, due to
the hash value being different than that of a string. However
it also means the removal of some unsafe code, and a better
long term solution will be to precache the lower case versions
as atoms.
Fix getElementsByTagName[NS] support to match the spec.
Merge pull request #2938 from jgraham/jgraham/getElementsByTagName

Fix getElementsByTagName[NS] support to match the spec; r=Ms2ger
Remove unused windows/globals
Decouple compositing and script crates.
Merge pull request #3054 from jdm/script_traits

Decouple compositing and script crates.
Upgrade Rust.
Merge pull request #3040 from servo/rustup-20140804

Upgrade Rust.
Merge pull request #3060 from Manishearth/remove-window

Remove unused windows/globals; r=jdm
Rename ClientRect and ClientRectList to DOMRect and DOMRectList (fixes #2814, fixes #2840).

These interfaces were renamed in the specification, in order to use them in
other contexts than the getClientRects and getBoundingClientRect methods.
Merge pull request #3058 from Ms2ger/2814-DOMRect

Rename ClientRect and ClientRectList to DOMRect and DOMRectList (fixes #2814, fixes #2840); r=abinader
Make Range::reflector private.
Pass a Document to Range::new.
Implement Document.createRange().
Update wpt expected results.

Due to a mozlog bug, our automation didn't catch those changes.
Implement Range.detach().

Incidentally, this allows dom/interfaces.html to actually run.
Merge pull request #3063 from Ms2ger/Range

Implement some missing Range pieces; r=Manishearth
Update README.md
Merge pull request #3064 from Ms2ger/fix-wpt

Update wpt expected results; r=jdm
Throw a catchable exception from ThrowingConstructor.