Bug 918808 part 4 - Refactor Array.prototype.join to use the fast path in more cases. r=luke
Bug 917593 - Don't assert for zero-length strings. r=Waldo
Bug 917915 - Don't leave an exception pending in JS_ReportPendingException. r=jorendorff
Bug 917909 - Stop asserting that the last JSContext is destroyed outside of GC. r=billm
Bug 917909 - Remove mLastContext hackery in workers. r=khuey r=billm
Bug 915613 - Introduce a mechanism to get a default context for a runtime, and use that in js-ctypes. r=jorendorff

This causes us to use the SafeJSContext on main thread, and the singleton
JSContext on workers. I opted for the slightly-heavier-weight dynamic callback,
rather than just setting it as a member on the runtime, because we like to delay
the creation of the SafeJSContext a bit, so I didn't want to spin it up right
when we spin up the runtime.