Allow kml as a file extension for attachments
Tidy test for extensions allowed in AttachmentUploader

Better to not rely on the implementation and test having the exact same code, we care only that their arrays have the same elements.
Refactor how we validate zip file contents

This is preparation for adding the ability to see if the zip file looks like an ArcGIS file.
Allow uploading zips that look like they are ArcGIS shapefiles

We now allow a zip file to be stored as an attachment if it meets the following constraints:

1. none of it's filenames are not utf8

2. either

  * it must have 1x .shp, 1x .shx, and 1x .dbf
  * it can have 1x .prj, 1x .sbn, 1x .sbx, 1x .fbn, 1x .fbx, 1x .ain, 1x .aih, 1x .ixs, 1x .mxs, 1x .atx, 1x .shp.xml, or 1x .cpg
  * it doesn't contain any thing else

or

  * it only has files of types: pdf, csv, rtf, png, jpg, doc, docx, xls, xlsx, ppt, pptx, rdf, txt, and kml

We do this with various ZipFile::Examiner subclasses defined in AttachmentUploader.
Merge pull request #133 from alphagov/allow-kml-and-arcgis-attachments

Allow kml and ArcGIS attachments