#353, #170, #321

I bunched these together because they all deal with server side validation of passwords and their share some changes.