Refactor controller manager.

I also added a controller manager test, and fixed a locking problem and a potential race. Integration & e2e tests still pass.
I feel like this whole 'returnZero' bool is awkward.  Perhaps better as a switch?

switch {
  case err != nil && (!ignoreNotFound || !IsEtcdNotFound(err)):
      return err
  case err == nil && !ignoreNotFound && (response.Node == nil || len(response.Node.Value) == 0):
      return fmt.Errorf(...)

You get the idea, (I actually think the conditions could be even cleaner with a little more reduction)