Change kubectl exec/attach/cp to use WebSocket protocol

This issue tracks upstream contribution to https://github.com/kubernetes/kubernetes/issues/89163. Only exec, attach, and cp commands are in scope.

Edited by Mikhail Mazurskiy