Change the way the documents are deleted in couchdb.

* Turns out one can store additional data along the deleted documents in
couchdb. You do this by updating the document with _deleted=True flag,
rather than performing the DELETE http request. This commit uses this
feature to store the document_type. This allows us not to have a separate
listener for the document deletes.
* Implement the keep_deleted flag in document.field() declaration, which
informs the driver to preserve this field. This makes it *much* easier to
implement the changes/replication filters, because one can have all the data
needed to analize in the view server call.