changing Credential == operator

it should no longer raise no method errors when comparing a credential to
an object that doesnt respond to public, private, or realm
Land #3566, ducktype better