All writers now inherit from a base writer

* the writers are now responsible for cleaning docs
* added an append_json writer that does not delete docs and simply
    modifies index.json