Implement full-text searching

Index document content as well as the document metadata, allowing for documents and files to be found by their content. Matches on content should be weighted lower than matches on metadata.

This should be accompanied by performance tests as well.
You'll also need to be careful when to call the `callback` function. You might want to wrap it in `_.once`