File type identification fixes

Description

I have some changes nearly queued up for 2.4 release in the repository (topic/seth/more-file-type-ident-fixes) in the but a bit more work needs to be done.

There may be one more breaking change to the files api coming in this branch too. Jon and I discussed some options and I think that creating a new event named file_sniff in place of the file_mime_type event makes sense. We can put the mime type and more "sniff" originated data in a record on that event so that we can extend it cleanly (and without breaking APIs) in the future. I think it will look something like this:

```
type fa_sniff: record {

  1.  

    1. Depth sniffed.
      depth: count &default=0;

    2. Sniffed mime type if one was discovered.
      mime_type: string &optional;
      };

event file_sniff(f: fa_file, sniff: fa_sniff)
{
if ( sniff?$mime_type )
{
print sniff$mime_type;
}
}
```

One other thing this branch will address is a performance degradation from certain file signatures interacting with each other poorly.

Environment

None

Assignee

Robin Sommer

Reporter

Seth Hall

Labels

None

External issue ID

None

Components

Fix versions

Affects versions

Priority

Normal
Configure