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.
We'll want to do a reindex operation of lots of content to see what IO loads this produces. IIRC the `LocalStorage.get` method copies the file from the NFS to a `/tmp` directory rather than handing a direct file pointer. This might put a lot more stress on the NFS drive than is necessary?