Fixes #4131

A slight refactor.
auto merge of #4132 : jtuchsen/servo/issue-4131, r=jdm

A slight refactor.
auto merge of #4000 : t29/servo/mime-sniffing, r=jdm

Issue: #3144

This PR addresses the second step of the ticket. i.e. move from a 1:1 sniffer:request task model to a shared sniffer task.
Added mime classifier
Made test more flixible, added cursor and bmp
Reference by trait not by type in MIMEClassifier
Made test structure make more sense
Added the rest of the images, fixed warnings (still need to find an example webp and git87a
Changed to Option<(String,String)> return, closer to the output type needed in section 7
Added audio/video byte patterns
Adding binary test files
Added font type patterns
Added archive types
Adding text/html mime types

Conflicts:
	components/net/mime_classifier.rs
Added mp4 classifier

Conflicts:
	components/net/mime_classifier.rs
Added specific tests

Conflicts:
	components/net/mime_classifier.rs
Added test files
Adding more test files and fixing some typos in source tests
Reformatted file, added come comments
Brought into line with 7