Watch ZK for broker updates and react accordingly

Instead of only fetching the broker list at startup, watch the broker
directory for changes. When changes occur, reconfigure the snapshot store and
journal actors. If Kafka is unavailable during startup, retain the original
behaviour, i.e, configure with an empty broker list. When Kafka eventually
becomes available we will be notified and the writers will be reconfigured.