restart processing after checkpoint reset

Also keep checkpoint updated using heartbeat even if no changes are being streamed.
Copied from CouchDBKit