Boyer Moore SPM pass in ctx instead of indivual bmBc and bmBg
It would be cleaner to pass the Boyer Moore context (BmCtx) into the Boyer Moore routines than the individual arrays.
This would then allow combining the memory allocation of both of those arrays into one allocation and remove the need for the BmGs pointer inside BmCtx structure. That keeps the two tables, which are always used together closer in memory, removes the need to indirect through the BmGs pointer. One malloc() call uses less memory than two malloc() calls.