Error pathways for duplicate handle/email

Checkpoint, although the code may actually be working now.  Main point
was adding createProvisional() and getting it checking the
preconditions.  This uses a new PublicException notion -- error messages
that work via Scala's Try class, and are internationalized via Play.
This should be a model for error messages going forward.

Added Display Name as something we collect at signup.