CAS-1238 Emphasize Credential#getId() contract in javadocs.

Note non-null expectation of Credential#getId() but code defensively.
CAS-1238 Logging and comparison tweaks based on code review.

@mmoayyed recommended that comparisons based on attribute name should
generally be case insensitive. LDAP directories are inherently case
insensitive, and with most other common data sources insensitive matching
is at worst harmless and helpful at best.