Add conditional for user.has_usable_password

This is a flag set so that if admin package is using a different backend for authentication, that the "change password" url does not show. I'm coping this functionality from: https://code.djangoproject.com/ticket/17967#no1