The factory method lives on the reporter class, as it's going to become
the method with the logic for loading different reporter backends
(for support of things such as etcd).
This is the first step refactoring towards that. There aren't
any current tests, but the method extraction is trivial enough
and I'll build some tests out as I contine to develop the ability
to have multiple reporters.
We're not actually using it in any way yet, but this adds the dynamic class loading
so that we can plug other backends in more easily.
The zookeeper reporter inherits from the main reporter where all the code still lives,
so that moving the bulk of the code can be a latter step in refactoring
The factory class is now seperate from the base class, which isn't a big deal, but I think is
more elegant (as then the subclasses don't inherit the factory method).
Next up, moving all the code into the child class
Just remove the checks from the service_watcher, as the reporter already
does the appropriate data validation. Also cleanup the initalize method
in the zookeeper reporter, as it was an over-complex mash of the
initialization code moved in there from the factory method whilst