Reimplement Boyer-Moore-Horspool to work independent of data size

Based on example on Wikipedia.
Prior version failed to terminate when called with haystack > 32k, which happens easily with larger LBUFs.