Allow multiple mimetypes per extension

This is a follow up on https://github.com/silverstripe/silverstripe-framework/pull/3603

The issue with using the framework mimetypes is they're only really intended to be displayed as text or be sent as headers. Validating based on these limits us to only accepting one mime type as being valid for a file extension.

This PR adds support for multiple mime types for file extension (and more specifically .ico) which can be added as and when needed.
You can't return anything after a throw.