This is the code that will actually register a user (ENG-4047). Some notes:
- I initially considered passing the avatar directly to the registration endpoint, but realized that gets complicated since we need a logged-in user in order to do a media upload. Instead here I first register the user, and in a later diff I'll handle setting the user's avatar.
- We don't yet have a screen for accepting terms (ENG-3951). For now I'm calling the registration endpoint from AvatarSelection, but after introducing a screen for accepting terms I'll move the registration call.
Depends on D8148