NEXUS-6102: Ditch mimeUtil2, use Tika
NEXUS-6109: Added new method for better precision.

Typically, JAR files are actually ZIP containers, and
Tika will recognize it as ZIP, but we did "reroute" MimeUtil2
and was showing application/java-archive in those cases.

So, a new method helps Tika guess better, as it is able to
use not only content, but also the file name to fine tune
the guesswork.
Merge remote-tracking branch 'origin/master' into NEXUS-6109-apache-tika

Conflicts:
	components/nexus-core/src/main/java/org/sonatype/nexus/mime/DefaultMimeSupport.java
NEXUS-6109: Rework of MimeSupport implementation.

Figured that Tika class offers high level access to MIME
detection, and is not what we want. We need "deeper" access
to underlying actual MimeType instances, and, more importantly,
we want to "unravel" all the super types all way up to root
mime type, that is needed to perform proper content validation.
Also, there is a twist with a Nexus specific case: empty XML
files should be banned. Hence, Tika detection must be used but
without name metadata, that would mislead Tika.
NEXUS-6109: Handling the "empty XML" edge case

Ny using the newly introduced methods on MIME Support
NEXUS-6109: Adjusting UTs

As now, root MIME type (octet-stream) is always returned
as "least specific" MIME type (basically, whatever content).
Also, slight internality change about use of NexusMimeTypes
caused to change how mock reacts too.
Merge remote-tracking branch 'origin/master' into NEXUS-6109-apache-tika
NEXUS-6109: Explicitly refuse 0 byte length files

If a file WITHOUT CONTENT (0 bytes length) has been sent
for CONTENT validation, interpret it as FAILURE.

NB: Deploying 0 byte length files was always impossible.
This change only "aligns" deploy with proxying, so
from now on, 0 byte length file will not be proxied
either.
Merge remote-tracking branch 'origin/master' into NEXUS-6109-apache-tika
Merge pull request #235 from sonatype/NEXUS-6109-apache-tika

NEXUS-6102: Ditch mimeUtil2, use Tika