Implement change password logic. Fixes #18