IOService enhancement needed for drag and drop

The drag and drop code (on drag-and-drop branch) treats all Files unclaimed by any handler as an image. This can result in exception errors. Ideally the ImageFileDragAndDropHandler would ask the IOService if the given file is an image file before accepting it. The IOService would need to be able to figure this out in a timely fashion. Maybe just by file extension. The service could have a default mode (extension checking only) and a thorough mode (try opening file and reading header if needed).

This is done on the drag-and-drop branch. (Specifically, it is addressed in commit 4fef79c0.) When that branch is merged, I will close this ticket. There are still a few bugs to iron out first, though.