Fix off-by-one error in memoization indexing

I believe this was causing more cache lookups to miss than should have
been the case. At least with the meagre test data I was using, the
quality of the results wasn't being obviously affected.

With this change, the "pathological" test case gets much, much faster,
while the others remain more or less the same.

Old:

                          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)

New:

                          user     system      total        real
  pathological        0.000000   0.000000   0.000000 (  0.004769)
  command-t           3.330000   0.030000   3.360000 (  3.368512)
  chromium (subset)   2.570000   0.020000   2.590000 (  2.591855)
  chromium (whole)    7.080000   0.040000   7.120000 (  7.119191)

The improvement is so marked that I am almost suspicious of it, but I
added logging of -- lengths and indices, hits and misses, loads and
stores -- and ran it over a simple test case and it looks like the right
values are being loaded/stored in the cache.

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