Fix potential SEGV (memory read overrun) per Yuriy

Yuriy M Kaminskiy points out (among other memory-overrun-related defects) that the "memcmp" in ssestr is not safe: if the target has a pat[2] occurrence near the end, and the target ends very near a segment end, then ssestr's memcmp will try to read beyond the end of target. The change fixes that, and brings back into question the "clean" factoring of the ssechr2 logic out of ssestr -- better to have a single complex scan that eliminates the repeated set-ups in ssechr2 and handles the "memcmp" logic at the same time.