More work on Users

AjaxPassView now works on User directly, since it will be useful for it
to be able to log the user in, clear reset token, etc.
User now has separate validation and reset-password tokens, to prevent
one being used for the other purpose, in particular we don't want a
malicious user to be able to use a validation token to reset the
password, since this might confuse the real user (of course in this
case the mail account must have been compromised anyway).
UserLogin now clears any reset-password token on successful login, to
stop stale tokens hanging around.
Fixed typos in UserSignUp error messages, and improved display of
errors in form.
UserValidate now clears the validation token, rather than generating a
new token (might as well have no token there at all, so there is not
even a token to guess - of course it is huge and so should be
unguessable anyway).
stringToRefNodeSeq now uses a Val rather than a Cal, since the string
is immutable.