First step in the great avatars refactor/cleanup. Created this diff to factor out all the logic for uploading and preparing an image selection to be saved by the set avatar endpoints, which was really long and making it difficult to read/work in the `avatar-hooks` file.