split consumer thread from main loop
don't load starting offsets when launching an application for the first time
handle the condition when all TopicAndPartitions have no more messages to fetch
make consumer queue size configurable
remove obsolete file
add checkpoint id as a work around for nonpersistent application id
Merge pull request #92 from manuzhang/at_least_once

make consumer run in a separate thread from main loop