[futures] make threads in thread pool daemonic

The main Python program will wait for all non-daemonic threads to exit before
exiting itself. Since the user did not explicitly start the threads in a thread
pool, it is easy to forget about them, making your program unable to exit. So
according to the principle of least surprise, it's better to make these threads
daemonic.

The only drawback is that daemonic threads are killed abruptly when the main
program exits. So you should not to exit() if there's work going on in a thread
pool that is not crash-safe. This is pretty obvious, though.
[http] fix typo
[http] new functions: urlsplit2() and split_option_header()

The function geturlinfo() is superseded by urlsplit2() and removed.
[fibers] new utility function: spawn()
[jsonrpc] refactor status codes
[docs] fix link to referenced Ousterhout paper
[jsonrpc] new function: message_type()
[jsonrpc] default to version 2.0
[jsonrpc] dummy create_request()/create_error() for notifications
[http] fix typo
[protocols] only set .transport when listen() succeeds

It appears that bind() to an already bound address will only fail when you
actually listen() on the transport.
[gruvi] not supposed to do "from gruvi import *"
[http] new function: rfc1123_date()
[http] expose transport as "gruvi.transport" in environ
[http] logging tweaks