Added basic registration validation... user must have name, username,
and the same password to register. Added enhanced error messages to
handle various fail scenarios. Refactored and restructured some of the
code to make it cleaner.