[#75962418] Write non-HTML content to disk

This adds support for writing the following file types to disk:
- ATOM
- CSV
- DOCX
- ICS
- JSON
- ODP
- ODS
- ODT
- PDF
- XLS
- XLSX

Created a new `http_crawler.CrawlerResponse` object that will hold the body and headers for the HTTP response. It then provides some helper methods around `Content-Type` values that we support that are used elsewhere in the workflow for the function `WriteItemToDisk`.
I considered if we should make these constant names more specific, e.g. MIME-ATOM. This would make [lines like](https://github.com/alphagov/govuk_crawler_worker/pull/64/files#diff-82977c305eddaea5272b9959ce63c187R51) `http_crawler.HTML` much clearer.

But I think it's more readable and succinct as-is, plus we can change this if it starts to become confusing.