Code cleanup

Cleaned up method docs, added @throws and some missing @params and @return. Removed unnecessary @return

cleaned up logic in the match method. (flase !== isset(.....)) is logically equivalent to "if false not equal to isset failing" other wise expressed as isset === true, or more cleanly just isset

cleaned up several if statements using backwards logic. false === $regex is not standards compliant in any standard. replaced with a standard !$regex or "if regex is false"
Previously, if `?` was the first character in `$requestUrl`, this if expression would evaluate to true. With the proposed change, when `?` is the first character (strpos returns 0), this if expression would evaluation to false.

Can you revert this change in behavior?