Reduced log level for when a user is not found down to info rather than warning
Added more lookupKey and value to exception when a lookup fails
Changed the LDAP cache to use strong keys and values rather than weak ones.

I noticed that the cache always seems to be empty so I presume that gc pressure is causing it to be drained.  By changing to strong keys I'll let the eviction policy run instead when the maximum size is reached.
Added two sentinal objects USER_NOT_FOUND and GROUP_NOT_FOUND.  These are inserted in the cache when a lookup fails to stop us persistently hitting the server if one of our users is not in ldap.

The is a possible problem here if someone is querying for lots of invalid names then they will evict all the valid users from the cache.  If this looks like its happening then I'll partition the caches in to positive and negative results.