Changed how the default alternative for a property is selected.

If a property was only indexed case-insensitively, but you're searching
case-sensitively, this used to generate an error. Now it doesn't; it
just searches this property case-insensitively. This is likely more in
line with what people expect.
Changed TextPatternRegex.rewrite() to deal with case-sensitivity flag.

The new case-sensitivity flag "(?-i)", when found at the start of a
pattern, will force case-sensitivity.
Added TextPatternRepetition.rewrite().
Fixed HitPropertyLeftContext behaving like HitPropertyHitText.
Slight code layout improvement.