Original URL length should be updated after URL decoding as well
Request coroutines may now be aborted by yielding special value

By yielding REQUEST_CORO_ABORT, a request coroutine will be destroyed
immediately.  This is used mainly by the I/O wrappers to handle
unrecoverable error conditions.  Previously, they would return 0, which
would just keep the coroutine around as if it had finished normally.

Yielding REQUEST_CORO_MAY_RESUME is the same as yielding 1.

When a coroutine is finished processing a request, it should yield
REQUEST_CORO_FINISHED, as to cleanup everything but keep the connection
alive so another request may be processed.