Terminate inner match.c loop as early as possible
Terminate inner match.c loop as early as possible

We can save ourselves a decent chunk of work by terminating our inner
loop as soon as we detect that we're too close to the end of the
haystack to possibly match what's left of the needle. It doesn't seem
like much of a change, but when you factor in the elevated costs of
recursion, it ends up being a decent win.

With this change we go from:

                          user     system      total        real
  pathological        2.940000   0.000000   2.940000 (  2.958157)
  command-t           3.620000   0.030000   3.650000 (  3.652865)
  chromium (subset)   3.410000   0.020000   3.430000 (  3.437180)
  chromium (whole)   10.160000   0.050000  10.210000 ( 10.229278)

to:

                          user     system      total        real
  pathological        2.420000   0.000000   2.420000 (  2.450693)
  command-t           3.260000   0.030000   3.290000 (  3.299227)
  chromium (subset)   2.660000   0.020000   2.680000 (  2.672489)
  chromium (whole)    7.750000   0.050000   7.800000 (  7.827607)

Signed-off-by: Wincent Colaiuta <c76ac2e9cd86441713c7dfae92c451f3e6d17fdc@wincent.com>

vrkansagara/command-t,1234-/command-t,mtimkovich/command-t,simichaels/dotfiles,mtimkovich/command-t,wincent/command-t,wincent/command-t,yrro/command-t,supriyantomaftuh/command-t,wincent/command-t,besarthoxhaj/command-t,supriyantomaftuh/command-t,lencioni/command-t,simichaels/dotfiles,lencioni/command-t,yrro/command-t,vrkansagara/command-t,1234-/command-t,besarthoxhaj/command-t