Add multiple-protocol support to the HTTP server

Now, bind addresses are specified as "protocol://address[:port]". For
example, the old behavior of "0.0.0.0:8077" is equivalent to
"tcp://0.0.0.0:8077".

In order to use UNIX sockets, one would simply specify
"unix:///path/to/socket".

Close #82