Redesign logic for user creation / signup

 - UserRepository.Insert is now responsible for
   checking if the email address is already
   registered before saving.
 - SignupForm handles encryption of the users
   password; it basically translates user input
   to something the system needs
 - Logic for processing the data is moved out
   of the SignupForm (now lives in handler and
   repository)
 - Added new shortcut for decoding and validating
   form
 - The User entity no longer knows how to
   encrypt password.
Redesign login related code

 - Replace SessionRepository with new
   bones/web/sessions package. The new
   SessionStore and Session interfaces make
   interactions with sessions testable.
 - LoginHandler assumes responsibility for
   the login algorithm.
 - Introduce new Authenticator service
 - FormContext is removed. Csrf token field &
   method moved to BaseContext.
 - The Shortcuts service has a factory method
   for creating a BaseContext with CsrfToken.