Add unit tests and implementation of LoggingCompositePropertyMatcher.

This now uses TextSubstitutingDescription to replace the default description
with one that has no newlines and is therefore more suitable to log output.
The test code uses a technique described in
http://jsoftbiz.wordpress.com/2011/11/29/unit-testing-asserting-that-a-line-was-logged-by-logback/
to test log output.
Enforce non-null property name in PropertyMatcher.

Property name is implicitly required to be non-null on PropertyMatcher
at construction. This change enforces that requirement explicitly.