Reimplement java.lang.String with JS Strings.

The other thing we'll have to figure out eventually is when to call *ctx.raiseException* (because we already threw *VM.Yield*, and now we're in a callback, where we have to raise the exception and then call *ctx.resume*) instead of *ctx.raiseExceptionAndYield*.