Move examples to new package 'simple' and factor out test utility methods
into separate class. Rename test classes to be more representative.

Paves the way for more complex examples for matching generic classes.
ReflectingPropertyMatcher no longer attempts to read the value of a
property if the matcher for the property has not been assigned.

This is a performance optimisation.
Added example model classes and appropriate matcher classes for
model classes that use generics.