Removed bizarre control path using throw and catch of Exception objects
Reworked the registeruser code to avoid concurrency problems.  We now create a new (temporary) session with which to create the new user. This means we can commit it immediately whilst still in the synchronized block and so its visible to other threads despite the database isolation level.
Removed dependency on frontend.xml (see commit log on urop-2013-frontend for explanation)