Double metaphone name search

This is a rough cut of using the double metaphone code from popit to
perform the name search/resolution. It also provides some improvements
to the doc filtering, hiding any fields that start with `_` from
appearing in docs sent to the client. It also somewhat centralises the
code that handles updating the document's `id` fields.

Still need to tidy this code up a bit and move the various functions
I've added to the storage module to a proper home and add some docs for
them.