[WebSocket] Make subprotocol and extensions live in WebSocket

Currently WebSocketChannel has methods subprotocol and extensions.
But they can be available only after the connection is established and
they don't change once set. Futhermore, there is didConnect notification
in WebSocketChannelClient.
This CL removes subprotocol and extensions from WebSocketChannel and
add them as WebSocketChannelClient::didConnect parameters.

BUG=384238
R=tyoshino

Review URL: https://codereview.chromium.org/334873002

git-svn-id: svn://svn.chromium.org/blink/trunk@176115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Update SelectorQuery constructor to adopt CSSSelectorList object

Update SelectorQuery constructor to adopt CSSSelectorList object instead of
copying it. This CL adds a adopt(CSSSelectorList&) factory function to
SelectorQuery class to make this behavior obvious.

Copying a CSSSelectorList is relatively expensive and it should therefore be
avoided when possible.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/330713003

git-svn-id: svn://svn.chromium.org/blink/trunk@176116 bbb929c8-8fbe-4397-9dbb-9b2b20218538