fix(User.signUp): don't leak database errors

User signup by username and password leaked database errors (like duplicated indexes) to user. This update prevents this and also adds a check for taken usernames and passwords