Give helpful error when email already taken on sign up (fixes #12), plus misc. cleanup