Refactor: Decouple failed attachments and the flash messages
Attachment#attach_files will no longer need to return a flash message,
instead it will put unsaved attachments into object#unsaved_attachments
where the calling object can access them.
A utility method #render_attachment_warning_if_needed is included for setting
the standard flash warning.