Fix for offset out of range error in log handler

This fix added the KafkaClient.fetchOffset() support and uses it in WeaveController to get the earliest offset available from Kafka when polling logs.

Also the log polling logic is modified so that upon any error, it will just keep retrying until it get succeeded or the polling thread is terminated.