Add WebSocket support and example webpage controller

Occasionally, decoding the WebSocket message fails about 1/4 of the way
through, and I have no idea why. The incoming data looks fine, and the
key looks fine... I don't know.