Remove some code duplication in the Compositor

It is possible to share the code which creates root layers.
auto merge of #3964 : mrobinson/servo/code-duplication, r=larsbergstrom

It is possible to share the code which creates root layers.
Update web-platform-tests.
cef: Don't link against librustc in the final build artifact
auto merge of #4040 : pcwalton/servo/librustc-linkage, r=metajack

r? @zmike
auto merge of #4039 : Ms2ger/servo/wpt_20141119, r=jdm
Added libbz2-dev to Debian based prerequisites

Encountered this when building for the first time today:

```
note: /usr/bin/ld: cannot find -lbz2
collect2: error: ld returned 1 exit status

error: aborting due to previous error
Could not compile `servo`.
```

Installing the libbz2-dev packaged fixed it.
Added a mach command for cargo update

As proposed in #3736

Example usage:

``` sh
$ ./mach update-cargo -p rust-xml
.
    Updating git repository `https://github.com/netvl/rust-xml`
ports/cef
    Updating git repository `https://github.com/netvl/rust-xml`
ports/android/glut_app
    Updating git repository `https://github.com/netvl/rust-xml`
```
Added bzip to Fedora and Arch prereqs
Update web-platform-tests.
embedding: add some commonly used string constants from chromium
embedding: implement cef_execute_process() stub

this is missing signal handler functionality in rust and we currently have no use case for actual execution of secondary processes
embedding: cef_string_wide_cmp()
embedding: cef_string_utf8_to_wide()
embedding: cef_string_wide_to_utf8()
embedding: cef_string_ascii_to_utf16()
embedding: cef_string_ascii_to_wide()
auto merge of #4042 : mttr/servo/debian_requirements_update, r=SimonSapin

Encountered this when building for the first time today:

```
note: /usr/bin/ld: cannot find -lbz2
collect2: error: ld returned 1 exit status

error: aborting due to previous error
Could not compile `servo`.
```

Installing the libbz2-dev packaged fixed it. Added to the list of packages to install on Debian based linuxes in README.md
auto merge of #4045 : mttr/servo/mach_update, r=jdm

Example usage:

``` sh
$ ./mach update-cargo -p rust-xml
.
    Updating git repository `https://github.com/netvl/rust-xml`
ports/cef
    Updating git repository `https://github.com/netvl/rust-xml`
ports/android/glut_app
    Updating git repository `https://github.com/netvl/rust-xml`
```
auto merge of #4044 : zmike/servo/embedding-process, r=jdm

Fixes #4023 

@SimonSapin @jdm