Refactor the code in remotecommand to better represent the structure of
what is common between portforward and exec.
Kubernetes-commit: 12c7874c0d88e9099ab2a29915d26751f0d23c2a
client-go/pkt/util was removed in favor of client-go util, which consists
only from CodeExitError and ExitError interface
Kubernetes-commit: 8574bc564f4c54aa964d6c0c7ccec3202d9e2f1b
Module remotecommand originally part of kubernetes/pkg/client/unversioned was moved
to client-go/tools, and will be used as authoritative in kubectl, e2e and other places.
Module remotecommand relies on util/exec module which will be copied to client-go/pkg/util
Kubernetes-commit: 2612e0c78ad18ac87bbd200d547100cf99f36089