Emit PID at start of benchmark run

This allows us to track memory usage during the run. Turns out, it's
fine, sitting stable at just under 100 MB on this machine.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
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 <win@wincent.com>