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. 
I'm a little uncomfortable doing this here.  I don't know that it belongs to this method (for one thing, it could be incredibly expensive).  It might be better to split ResourceInfo and ResourceSelector into two objects which support a single method:

```
func (r *ResourceInfo) Get(fn func(obj runtime.Object) error) {
  // code that calls restHelper.Get
}

type ResourceSelector struct {
  Mapping 
  Client

  Selector labels.Selector
}

func (r *ResourceSelector) Get(func(obj runtime.Object) error) {
  // invoke restHelper get by labels
}
```

That allows a caller that wants to deal with objects in bulk or singular to pass a function that operates on a single object at a time through a single interface.  An added benefit is that the upcoming object stream work can reuse this mechanism.