made the UserDao interface smaller and added some Javadoc
"improved" exception handling in case the user is already present in the system and added unique constraint on the users email address