kubectl delete command: adding labelSelector

Add a Visitor pattern on top of ResourcesFromArgs

Allows ResourcesFromArgs to return an opaque list of items and have client
commands react to them.

Change request.go to return apiserver errors for arbitrary status codes to
better respond to generic actions that don't make sense (kubectl delete operations foo)
Merge pull request #2751 from sdminonne/delete_by_labels

kubectl delete command: adding  labelSelector
Updated types API to include session affinity. …
 - changed CLIENT-IP and NONE to be ClientIP and None respectively
 - updated conversions to support translating between api versions.
 - updated validations to validate session affinity type if specified.