Add 'use_previous_backends' option.

* This option defaults to true:  if there are no default servers and a watcher
  reports no backends, then use the previous backends that we already know
  about.
* Factor out code that updates '@backends' into the watcher base class.
here `new_backends` would still ref variable from outside which could be populated by something, effectively making `@backends` not empty - we probably don't want that. either assign empty array or use `@backends.clear`