kubectl delete command: adding  labelSelector

@lavalamp @smarterclayton basically I've rewritten the PR integrating your comments.

@smarterclayton: I didn't fix shortcut expansion since I have hard time to understand where the shortcut should come from. Maybe we may discuss about it. 
@smarterclayton I tried to wrap my head around these but I have hard time. (Sorry for the maybe silly questions)

If I split  `RESTCallItem { ... }` in  `ResourceInfo { ... }` and  `ResourceSelector { ... }` 
the `func ResourcesFromArgsOrFile` should return 2 arrays `[]ResourceSelector` and `[]ResourceInfo`? My understanding is that info contained in both struct will be necessary to delete the resources.

What's the goal of having the 2 `func Get(...)` for `ResourceInfo` and `ResourceSelector`. These two funcs get as input a `func(obj runtime.Object) error` but what's the role of this `func`? To extract for example the names?
Clearly I'm loosing part of a bigger scenario

About the cpu hit of calling the get for each resource: my understanding (probably wrong) if that the only way to detect if a resource is a kube resource is to get it. Is there other way to detect it?