Changed strstr algorithm to Rabin-Karp

Rabin-Karp uses a rolling hash to avoid costly character comparisons.
Got 15-20% speedup on E6550 + SSD.
Need to test on i5 to confirm speedup for more recent architectures.

Something interesting about Rabin-Karp is that it allows to search for multiple patterns at once without penalty. So maybe this is a possible amelioration for ngp!