For me, I'd rather developers just did `new UnsavedFileAttachment`. This is going back on my initial thoughts, but I think makes it clear that the UnsavedAttachment idea is one developers can implement (e.g., for a HTTP streaming attachment) rather than us needing to implement a ton of them.

And it makes it fewer places to modify if and when we or contributors want to add new unsaved attachment types.