Make replication controllers use new watch interface

Only the last commit is intended to be part of this PR, the others are already pending in other PRs.

>To make sure the etcd watcher works, I changed the replication controller to use watch.Interface. I made apiserver support watches on controllers, so replicationController can be run only off of the apiserver. I made sure all the etcd watch testing that used to be in replicationController is now tested on the new etcd watcher in pkg/tools/.
It's not, but it was very useful for debugging. I was switching it in and out to make sure it behaved the same. A future PR will remove all etcd references from this file.