Move watch filter into storage level

Fix #2663  @smarterclayton 
The ugly hacks to stitch status in to the first view of the watch list, not the fact that status isn't updated in etcd.

----- Original Message -----
> > @@ -184,7 +184,7 @@ func (rs *REST) List(ctx api.Context, label, field
> > labels.Selector) (runtime.Obj
> >  
> >  // Watch begins watching for new, changed, or deleted pods.
> >  func (rs *REST) Watch(ctx api.Context, label, field labels.Selector,
> >  resourceVersion string) (watch.Interface, error) {
> > -	return rs.registry.WatchPods(ctx, resourceVersion, rs.filterFunc(label,
> > field))
> > +	return rs.registry.WatchPods(ctx, label, field, resourceVersion)
> 
> >It doesn't - we did a bunch of ugly hacking around this in OpenShift a few
> >weeks ago - @jwforres and @ironcladlou can now go and remove those ugly
> >hacks
> 
> The root of our problem is etcd is never updated with new pod status. Has
> that changed somewhere recently?
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/GoogleCloudPlatform/kubernetes/pull/2665/files#r21160525