Fix delayed jobs issues

# Why?

There was a regression after a recent production deploy that caused images to stop uploading. As it turns out, the method that was being called by delayed job was no longer saving the image, so the changes to the model were just quietly GCed.

# What Changed?

Refactored `Picture.from_url` and made sure it actually saves it in DJ.
This felt like a real hack while I was doing it - I'm also worried that this could be extended indefinitely. Maybe a "valid image" method on the the picture method would help here?