Made KMP able to adapt pattern streaming style.

Will be useful for extending the pattern as we won't need to compute the failure table every time.
Moved pattern row functions into struct.
KMP now extends to avoid periods.
Moved failure and pattern lookups into functions.
KMP now compressed using periods.