Move HTML attachment rendering to own controller

It was a bit weird that it was mixed up in the normal attachments
controller.
Handle unpublished editions of HTML atachments

Fixes https://www.pivotaltracker.com/story/show/60861864
Failing feature for previewing a CSV attachment
Expand AttachmentVisibilty functionality

This is so the appropriate records can be loaded to preview a CSV
attachment.

I've added some docs explaining the utility of this class as it's a
strange thing that only exists because of existing debt around the way
we route attachments. Hopefully it will act as a handy signpost to
future-developer and give them some context as to the reasons why it
exists.
Implement CSV attachment preview

CSV preview is currently limited to the first 1,0000 rows
Front-end work still to be done.