Fixed MongoBox transaction use, lift user

MongoBox now expects keep and find to be run OUTSIDE a transaction.
Running keep inside a transaction could cause the created View not to
work. If a new MongoNode is created in a transaction, and is then kept
in that same transaction, the view created will be called on the
PREVIOUS transaction when it is created, but will attempt to read boxes
in the newly created MongoNode, which did not exist in the previous
transaction. This falls under the class of bugs that occur when Box
references leak from one transaction to another, and is the reason we
can't really have nested transactions OR creation of views or autos
from within transactions.
Added some more details to TransactDefault toString and exceptions.
Added FIXME about views being killed by an exception when they are
running.
Reinstated User login/logout pages/snippets, UserResetPassword and
UserValidate snippets.
Finished UserSignUp snippet, this now uses angular - would be nice to
rewrite the other snippets/pages similarly.
User password validation is now simpler - just checks for 8 to 256
characters, it's a pointless mission trying to dictate password policy
beyond this :)