First cut at WebSockets support, still very rough (#133).