feat(client): Allow the user to restart the signup flow on email bounce.

feat(client): Allow the user to restart the signup flow on email bounce.

Add two new error codes:
* 1018 - SIGNUP_EMAIL_BOUNCE
* 1019 - DIFFERENT_EMAIL_REQUIRED

fixes #1801
Hmmm. A couple of observations:

* If I didn't know that "account doesn't exist anymore => email bounced", this would be very confusing.
* Unfortunately, that connection needs to made somewhere, but it's not clear that here is the best. I don't think we'd call `recoveryEmailStatus` from any other context/flow, but throwing a `SIGNUP_EMAIL_BOUNCE` error here tightly couples this call to the sign up flow. For example, if I did 1) signup with a valid email, 2) delete account, 3) call `recoveryEmailStatus` on the deleted account email, I'd get this bounce error, which would be confusing. The email never bounced in that case, but the account was deleted. 
* I think that `ACCOUNT_DELETED` would be a more accurate error to throw here and divorces it from the context it was called from. I also think that `ACCOUNT_DELETED` useful error for other calls as well. Technically, whenever you get an INVALID_TOKEN error, the account could have been deleted. 
* All said and done, the real problem may be that we don't have any explicit indication that the server got a bounce -- we have to infer it from the account being deleted shortly after we asked the email to be sent.