refactor(*): changed approach entirely

The previous approach was a bad idea.
The API should be write only because
all those reads and writes of the old
approach limited scalability *extremely*.

We know streamlined count and lastEntity
to be included by the sync() call but behind
the scenes they are fetched via async APIs
directly against the search index.

This means that all updates don't cause
reads and writes of the meta data. The only
time the meta data is changed is when a new
task begins.