Support using the Porter stemmer when compiling search queries
Ref T6740. Stemming reduces words to roots, so "deleting", "deletion", and "delete" all index as the root "delet". It's fine that roots aren't really words.
When users search for "delete", we'll search for "delet" intead, in an index which has already indexed all variants of "delete" as "delet".
(This gets a bit tricky when users mix quoted and unquoted terms, so we may need to search literal and stemmed indexes separately.)
Test Plan: Added unit tests; ran unit tests.
Reviewed By: chad
Maniphest Tasks: T6740
Differential Revision: https://secure.phabricator.com/D16943