Move watch filter into storage level

Fix #2663  @smarterclayton 
Oh, that's a bit surprising... I just add a todo here, but i feel like this is something we need to fix sooner.  Having WatchPods (WatchController, etc.) take another updater/filter function to update the matched object seems to be the path to go down.

This way, we separate the updating logic from storage, and also keep a consistent way of updating object.