Fix race condition in XHR and handle other abort/open scenarios

This fixes issue #3630
A short summary of the changes:
* Use generation id to cancel inflight requests
* Handles nested calls to abort, open, send inside handlers
* Adds XHRReleaseMsg to delay freeing XHR object till all
  inflight events are processed
* Change the ErroredMsg enum to be more symmetric with the returned
  Error enum
Implements case insensitive font family names.

One part (of 8!) of css font family disambiguation is that font families should
be matched case-insensitively.

This patch implements that. Once it lands, a bug needs to be filed to do lowercasing
properly (as a string, instead of char-by-char -- it's a unicode thing).

r? @gw
Various fixes to CodegenRust.py
auto merge of #3880 : cgaebel/servo/case-insensitive-font-family-matching, r=glennw,glennw

One part (of 8!) of css font family disambiguation is that font families should
be matched case-insensitively.

This patch implements that. Once it lands, a bug needs to be filed to do lowercasing
properly (as a string, instead of char-by-char -- it's a unicode thing).

r? @glennw
auto merge of #3881 : brunoabinader/servo/dataset, r=jdm

Rust doesn't handle integers as bool on if statements, and defineProperty signature uses *mut instead of *const.
Update expectations for wpt tests under /XMLHttpRequest

Following tests are re-enabled:
* /XMLHttpRequest/send-network-error-async-events.sub.htm
* /XMLHttpRequest/send-network-error-sync-events.sub.htm
* /XMLHttpRequest/xmlhttprequest-timeout-worker-aborted.html
* /XMLHttpRequest/xmlhttprequest-timeout-worker-overrides.html
* /XMLHttpRequest/xmlhttprequest-timeout-worker-simple.html
* /XMLHttpRequest/xmlhttprequest-timeout-worker-twice.html

Following tests are disabled:
* /XMLHttpRequest/xmlhttprequest-timeout-worker-overridesexpires.html

The following tests are expected to timeout since window.postMessage is
not implemented yet:

* /XMLHttpRequest/xmlhttprequest-timeout-abortedonmain.html
* /XMLHttpRequest/xmlhttprequest-timeout-overrides.html
* /XMLHttpRequest/xmlhttprequest-timeout-overridesexpires.html
auto merge of #3732 : mukilan/servo/xhr-issue-3630, r=jdm

This fixes issue #3630
A short summary of the changes:
* Use atomic generation id to cancel inflight requests
* Handles nested calls to abort, open, send inside handlers
* Adds XHRReleaseMsg to delay freeing XHR object till all
  inflight events are processed
* Handles both timeout, errors and abort/open in a symmetric fashion
  i.e All inflight events will be cancelled for timeouts, aborts,
    errors and on calling open.
* Change the ErroredMsg enum to be more symmetric with the returned
  Error enum

I noticed a few possible changes that could make the code for fetch task simpler:
* We can remove the additional timer task and let the fetch task manage 
  its own timer (or maybe the resource loader can do this.)
* The CORS related steps could also be moved into the resource loader.
* Right now upload events are not support. This requires some support 
  from resource loader.
Corral debug command-line options into a --debug/-Z flag

This should make help output a lot cleaner and simplify the way that
uncommon debug options are passed.
auto merge of #3879 : mrobinson/servo/debug-options, r=cgaebel

This should make help output a lot cleaner and simplify the way that
uncommon debug options are passed.
Make media queries work with resize and page zoom.
Invert control flow, fix resizing, and improve checkerboarding
significantly by giving tiles some time to paint before we render
unrendered content.
auto merge of #3761 : pcwalton/servo/smooth-scrolling, r=larsbergstrom

r? @glennw @mbrubeck
gfx: Micro-optimize `DList` and `StackingContext` a bit.

I'm sad to say that this improved performance significantly. A lot of
this win is due to the Rust compiler not being smart about not zeroing
objects out if it doesn't need to.
Update web-platform-tests.
Support Back and forward button on mouses
Add serve-docs command to mach

This enables the user to run `./mach serve-docs` (with an optional port
number), starting a local web server that hosts the documentation for
Servo and Rust.

This closes #3807
auto merge of #3891 : Ms2ger/servo/wpt_20141103, r=jdm
Defer to GetAttribute in HasAttribute.

The semantics of has_attribute aren't anywhere close to the ones expected for
Element#hasAttribute, and it fails an assertion when passed non-lower-case
names.
Re-enable reflection-forms.html.
Pass an Atom to VirtualMethods::parse_plain_attribute.