Conversations attachment overrides refactor +

This is moving all the file attachment override stuff into the conversations model, creating dash global override for enabling attachments and a conversation level one for overriding it. I think it even successfully omits the attachments.js plugin if attachments are disabled rather than hoping it fails quietly, so yay. 

There's a lot of changes here, so if anyone wants to give it a good roughing up, that'd probably be good. 

Still need to create the orphan attachment job, finish the messages single page, and do the fileset switch when an attachment makes the cut, but I'm touching so many files I just want to get the refactor merged so I don't get hit with mega merges. (Already had one decent merge, heh). 

(Laying the groundwork for #692 and #694, but not solving them yet).