Store Boyer Moore no case strings as lowercase

Rather than convert Boyer Moore nocase search strings to lowercase on the fly, store them in lowercase.

Also converts the Boyer Moore API to take a Boyer Moore Context (BmCtx) since that stores the two arguments that were being passed in separately and allows fora simpler API.

Replaces PR 1029