Correcting indexOf and adding lastIndexOf.

The match_bitap code deviates from the other implementations; one
point of deviation is the "speedup" portion, which in the other
languages is implemented with indexOf search from a given position.
The Go implementation, however, ignores the position when doing the
forwards and backwards search, which is wrong.