When documents are removed delete from the index

This ensures that deleted documents don't appear in search results.

Only pre middleware takes a `next` function, post middleware simply
takes the document, which we can use directly for indexing and deleting.
Ensure mongoose middleware always gets called

Instead of calling methods on the model class we need to call them on
the model instance so the middleware hooks get run.