Only hash password attributes that have changed

I was having an issue that despite not submitting a new password, it was being re-hashed and I could no longer log in to my system.

To get around this, I've added in a simple check before you rehash password attributes to ensure that the value has actually changed.

Hopefully I've not missed something simple!