* Remove file_path_for, cropped_file_url (dead code)
* Remove complete_preview_file_url (preview_file_url now returns absolute links)
* Remove `file_name` (only used for Download link in sidebar)
* Perform backups synchronously inside `distribute_files` instead of
asynchronously in `queue_backup`. Asynchronous backups assumed that
files are stored on the local filesystem, which isn't true in general.
* Remove obsolete backup service classes.
Refactors the upload process to pass around temp files, rather than
passing around file paths and directly writing output to the local
filesystem. This way we can pass the storage manager the preview /
sample / original temp files, so it can deal with storage itself.
* Change Download::File#download! to return a temp file.
* Change DanbooruImageResizer and PixivUgoiraConverter to accept/return
temp files instead of file paths.
* Change Upload#generate_resizes to return temp files for previews and samples.
* Change Upload#generate_resizes to generate ugoira .webm samples
synchronously instead of asynchronously.
Move animated_gif / animated_png autotagging to take place during
uploading, instead of during tag editing. We can't generally assume the
file will be present on the local filesystem after uploading.
* Change `http_get_streaming` to write the output file directly,
instead of taking a callback.
* Track the filesize as the download progresses and abort when it
exceeds the limit.
* Don't save the Content-Type (it's not used anywhere).
Wrap `approve!` and `reject!` in transactions so that if there's an
error in approving or rejecting a BUR, it leaves the BUR's status
unchanged instead of updating the BUR but not updating the forum.
* Use `Danbooru.Autocomplete.render_item` for all menu item rendering.
Fixes usernames not being colorized when completing mentions, and post
counts not being shown when completing pools on the /pools page.
* Make the /pools page autocomplete pool names the same way that the
pool:<name> metatag does. Previously autocomplete on the /pools page
listed most recently updated pools first; now it lists largest pools first.
* Move all autocomplete code to autocomplete.js.
* Mark autocompleted fields with `data-autocomplete="<type>"` attributes,
instead of hardcoding input field IDs in the javascript.