Implement passwordless login

*Note: this code isn't finished yet!* I haven't localized things or updated tests, and some stuff is probably still broken. Nevertheless, I think this is far enough along that it's worth having other people take a look at it. If anyone has further guidance, let me know.

See also issue #34.