Add a websocket client
Update gitignore
tcp: Handle EINTR in recv() and write()