Formatted some code so that it's less than 80

characters wide.
Added a test to verify that a proper exception is

thrown when visiting a field, which is incompatible with the target
object. The exception thrown by the BCL is already sufficiently
descriptive, IMO, so no change in the SUT was warranted. However, I HAVE
seen the test fail.
Added a Guard Clause to protect against

incompatible properties. The exception text is patterned off the BCL
exception text for fields.

The check for compatibility is based on
RuntimeMethodInfo.CheckConsistency, which is a private BCL method.
However, the check is simplified, so in the end, it may be necessary with
a try/catch block instead of the Guard Clause.
Extracted a helper method for the conditional,

in order to make the code slightly more readable.
Extracted creation of incompatibility message

to a private helper method.
Incremented patch version,

in order to indicate that a more explicit check for type compatibility in
ValueCollectingVisitor is closer to a bug fix than a new feature.