ParameterProvider maps subclass properties

Prior to this commit, if you create a TraceParameterProvider that maps
properties for a base class, then create an Interface for an EventSource
that has a method with a parameter that is a subclass of that base
class, an exception would be thrown.

This is because ParameterBuilder<T>.Matches would allow for a subclass
to match, but the ParameterDefinition constructor would not.

This update changes the ParameterDefinition constructor to allow
subclasses to match a base class.

A test is included to demonstrate the problem.