Rework examples:

1. Combine AbstractBoxMatcher and BoxMatcher classes into
BoxMatcher with a private subclass TypeBoundBoxMatcher. This implementation
pattern removes the need for two public classes for each extensible matcher.

2. Move the example model objects into a higher level package that reflects
their use across multiple example matcher packages.

3. Introduce the examples.extended package which contains more complex
implementations of matchers for non-generic target types. The complex
matchers support subclassing and constructing matchers for abstract types.