mozilla-central modules for debugger detection

Borrows two python modules from mozilla-central to give mach the ability
to detect and pass arguments to a system's preferred debugger.

Links to borrowed files:
http://hg.mozilla.org/mozilla-central/file/c9cfa9b91dea/testing/mozbase/mozinfo/mozinfo/mozinfo.py
http://hg.mozilla.org/mozilla-central/file/c9cfa9b91dea/testing/mozbase/mozdebug/mozdebug/mozdebug.py
Adds --debug and --debugger flags to ./mach run
Panic if DOMTokenList#contains is called for an unparsed attribute.

Previously, if the attribute was not parsed into a token list, and the
tokens() method returned None, DOMTokenList#contains would silently return
false. This issue was encountered in
<https://github.com/servo/servo/pull/4076> and took quite some time to
figure out.
auto merge of #4083 : mttr/servo/mach_debugger_flag, r=mbrubeck

Borrows two python modules from mozilla-central to give mach the ability to detect and pass arguments to a system's preferred debugger, and adds `--debug` and `--debugger` flags to `./mach run`. This works almost like the functionality described [here](https://developer.mozilla.org/en-US/docs/Debugging_Mozilla_with_gdb), but at the moment it lacks a `--debugparams`  argument.

Links to borrowed files:
http://hg.mozilla.org/mozilla-central/file/c9cfa9b91dea/testing/mozbase/mozinfo/mozinfo/mozinfo.py
http://hg.mozilla.org/mozilla-central/file/c9cfa9b91dea/testing/mozbase/mozdebug/mozdebug/mozdebug.py
auto merge of #4084 : Ms2ger/servo/tokenlist-robust, r=jdm

Previously, if the attribute was not parsed into a token list, and the
tokens() method returned None, DOMTokenList#contains would silently return
false. This issue was encountered in
<https://github.com/servo/servo/pull/4076> and took quite some time to
figure out.
Lets `./mach test` infer testsuite from file

Usage Example:
```
$ ./mach test tests/wpt/web-platform-tests/dom/interfaces.html
 0:00.27 LOG: MainThread INFO Using 1 client processes
 ...
```

Note that while there is no functionality for `test-ref` to accept
individual files, `./mach test tests/ref` will still trigger `test-ref`.
auto merge of #4090 : mttr/servo/mach_infer_test, r=jdm

Fixes #4086

Lets `./mach test` take a file or directory as an argument, and infers `test-content`, `test-wpt`, or `test-ref` from the file's path. 

Usage Example:
```
$ ./mach test tests/wpt/web-platform-tests/dom/interfaces.html
 0:00.27 LOG: MainThread INFO Using 1 client processes
 ...
```
Note that while there is no functionality for `test-ref` to accept individual files, `./mach test tests/ref` will still trigger `test-ref`.

Passing arguments properly through python would have been ugly (though maybe there are some mach internals I could have taken advantage of), so this instead runs a new mach process and lets the individual test suites manage their arguments like normal.