stristr should accept before_needle parameter

Summary: fixes #3520

The third parameter of stristr is currently unsupported.

Refer to https://github.com/facebook/hhvm/issues/3520 for more information.

Reviewed By: @fredemmott

Differential Revision: D1514703
Handle exact substring matches within fuzzy search

Summary: This addresses what was mentioned here: https://www.prod.facebook.com/groups/devtools.feedback/permalink/720320464683238/

In any case where the letter expected in the exact match appeared beforehand somewhere in the string, we ignored the exact match case.  This handles that, so any time we find an exact substring match we'll score it properly.

Reviewed By: @joelbeales

Differential Revision: D1517792