ActiveStorage: add feature to allow upload from a remote url

Hi !

I’ve seen that it is not possible yet to upload an image with ActiveStorage from a remote url, as it is with other libraries such as Carrierwave.
Do you think it could be useful ?

I’ve started working on an implementation.
Here is the PR:

Feedback is greatly appreciated, especially regarding the questions I had:

  • should I make a dedicated class for remote files ? (will be useful to extend it in the future)
  • where should I define error classes ? I at least need a DownloadError class.