Handle non-CSV file uploads.

Fixed a bug: rejection of deferred wasn't manifest but model.
Ensure that manifest errors are not overwritten by messages.
If the file looks invalid UTF-8 at the start then assume Excel.