GuardClauseAssertion improvements

Addresses #137 and #117 and an unreported problem when testing a type with a property of a type that can't be created.