Avoid duplicate calculation of the registration details.

Change-Id: I67128fceb22f5e16171e473ee0e422d6284adb2a
Add client-side form filling feedback.

There's no point submitting a form that doesn't contain all the
required details, and it will now actually give the slightly confusing
DETAILS_ALREADY_USED error. Since it's quicker to fix this in the
client, do so. Add both html5 required attributes & checking in the
javascript to ensure that the user is informed of what is required.

Change-Id: I7c81364c3a23304c103a6ab94459b200435ac38f