Upgrade SpiderMonkey

Requires servo/mozjs#18 and servo/rust-mozjs#106.

For the benefit of reviewers:
* `Root<T>` is Servo's `Rooted<T>`, and is structurally equivalent so it can be stored in SM's root stacks
* `Temporary<T>` encapsulates identical behaviour to `PersistentRooted<T>` (which is duplicated in `PersistentRootedObjectElement`, structurally equivalent to `PersistentRooted<JSObject*>`)
* `JS<T>` acts as `Heap<T>`
* `MutNullableJS<T>` is a `Heap<T>` that implements write barriers

Also take a look at https://github.com/servo/rust-mozjs/pull/106, which does some lower-level integration with SpiderMonkey.