Makes the preconditions helper internal.
Adds non-generic version of the Matching API.

This version is intented for clients that
only have access to type information at runtime,
and thus are not well served by the generic API.
Moves the Matching enum to the xUnit project.

The 'FreezeOnMatchCustomization' no longer maps
the values of the 'Matching' enum to the corresponding methods
on the Matching API. Instead, it allows the caller to specify
the matching criteria through a function. This change allowed
to move the 'Matching' enum to the xUnit project.