code: @SuppressWarnings("WeakerAccess")
      public SignUpRequest signUp(@NonNull String email, @NonNull String password, @NonNull String username, @NonNull String connection) {
          final DatabaseConnectionRequest<DatabaseUser, AuthenticationException> createUserRequest = createUser(email, password, username, connection);
          final AuthenticationRequest authenticationRequest = login(email, password, connection);
  
          return new SignUpRequest(createUserRequest, authenticationRequest);
      }
docs: Creates a user in a DB connection using <a href="https://auth0.com/docs/api/authentication#signup">'/dbconnections/signup' endpoint</a>
  and then logs in the user. How the user is logged in depends on the {@link Auth0#isOIDCConformant()} flag.
  Example usage:
  <pre>
  {@code
  client.signUp("{email}", "{password}", "{username}", "{database connection name}")
  .start(new BaseCallback<Credentials>() {
  {@literal}Override
  public void onSuccess(Credentials payload) {}
  
  {@literal}Override
  public void onFailure(AuthenticationException error) {}
  });
  }
  </pre>
  
  @param email      of the user and must be non null
  @param password   of the user and must be non null
  @param username   of the user and must be non null
  @param connection of the database to sign up with
  @return a request to configure and start that will yield {@link Credentials}