Document PatternMatching classes.
Reimplement PatternMatching.Match.Equals()

Returns false instead of throwing.

Also implement GetHashCode() as per compiler's warning.