Build out a URI Adapter to allow uploading an avatar via a url

Currently only really accessible via the API.  The UriAdapter creates a tempfile from a url and gives a ActionDispatch::HTTP::UploadedFile back to the controller to process as normal.

This will help a lot in being able to transfer avatar urls from another app without monkey patching a lot of discourse code.