Throw exception when group name not found (REGEX-21)

Matcher now throws IndexOutOfBoundsException when a nonexistent group name
is requested in Matcher#group(String).
Check for quote-escapes in isEscapedChar() (REGEX-22)

Previously, our escape-checker was only looking for slash-escapes, but
java.regex.Pattern allows escaping character sequences in between \Q
and \E. This caused us to incorrectly count quote-escaped parentheses
and brackets, leading to invalid group values in:

   \Q[\E(?<foo>\d+)

Issue #2