Remove sgh->mask_array

Not needed by new MPM opt.
Sort the SIDS list stored in ac-tile MPM.

This allows merging the SIDS list into the list SIDS detected.
Merge new SIDs into existing sorted SIDs list on MPM match.

Rathter than sorting the SIDs list (rule IDs) at the end, keep the list
sorted at all times by merging in the new (sorter) sids list on each match.
Also remove duplicates at this time.

Performs slightly better.
Inline some of MpmAddSids()

For the cases that sids_size == 0 (New sids list is empty) or the
existing list is empty, do that code inline, otherwise call
MpmAddSidsMerge() to merge the two lists.
Create Specialized SCMemcmpNZ() when the length can't be zero.
Check that replist is not NULL before calling DetectReplaceExecute()
Change Match() function to take SigMatchCtx* rather than SigMatch*

The Match functions don't need a pointer to the SigMatch object, just the
context pointer contained inside, so pass the Context to the Match function
rather than the SigMatch object. This allows for further optimization.

Change SigMatch->ctx to have type SigMatchCtx* rather than void* for better
type checking. This requires adding type casts when using or assigning it.
Create optimized sig_arrays from sig_lists

Create a copy of the SigMatch data in the sig_lists linked-lists and store
it in an array for faster access and not next and previous pointers. The
array is then used when calling the Match() functions.

Gives a 7.7% speed up on one test.