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.
seems you only use `Set` for array equality test, this does the job just as well(actually much faster):

    return if new_backends - @backends == []