Allow preconstructed HTTPRequest objects in websocket_connect.

In particular this allows for headers to be passed in to simulate
browser authentication behavior.
Set Connection: keep-alive header directly without going through set_header.

set_header is not allowed in WebSocketHandler, but some proxies add
this header unconditionally.

Closes #897.