Link NSPR.

In order to support threadsafe builds (which are necessary for thread-safety
assertions and which will become the only available configuration in future
versions), we need to link to NSPR for threading primitives.
Implement JSAutoRequest.

In threadsafe builds, we should enter a request whenever we call into
SpiderMonkey. The JSAutoRequest class makes that simpler.
Remove the GC callback.

Consumers should be using native rather than green tasks, to avoid calling
into the same JSRuntime from multiple OS threads.

For native tasks, SpiderMonkey can figure out the correct stack bounds for
itself. Rust, on the other hand, apparently cannot; the existing code leads to
crashes during conservative stack marking.