Implement ngram search for File objects
Summary: Follows the outline in D15656 for implementing ngram search for names of File objects. Also created FileFullTextEngine, because without implementing PhabricatorFulltextInterface, ./bin/search complains that File is not an indexable type.
Test Plan:
- ran ./bin/storage upgrade to apply the schema change
- confirmed the presence of a new file_filename_ngrams table
- added a couple file objects
- ran bin/search index --type file --force
- confirmed the presence of rows in file_filename_ngrams
- did a few keyword searches and saw expected results
Reviewers: epriestley
Reviewed By: epriestley
Subscribers: Korvin
Maniphest Tasks: T8788
Differential Revision: https://secure.phabricator.com/D17702