Stop discovering non-public properties

Refactoring the extension methods used by the conventions.
Adding tests for unusual entity types.