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.
this would be destructive to data passed from outside which can be annoying, better do

    new_backends = new_backends.uniq

or considering previous i'd do this:

    final_backends = (new_backends + (@keep_default_servers ? @backends : [])).uniq