Add a class to compare .dll files for *real* changes

... i.e. *not* the time stamp nor the .pdb GUID.

The problem is that recompiling *identical* code on Windows does not
result in byte-identical .dll files. The reason is that the .dll file
format *defines* time stamps to be part of the format. Even without
timestamps, there is another problem: disregarding the debug option,
Microsoft Visual C compiler still incorporates .pdb information, always,
including a Global Unified IDentifier that changes *every single time*
source code is compiled.

The DllFile class is designed to analyze .dll files and determine
whether they contain *functional* changes as opposed to circumstantial
ones, such as time stamps or GUIDs.

We need this functionality to be able to avoid uploading "different"
files every night when uploading Micro-Manager's nightly build.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add example .dll files for the upcoming DllFile test

The empty.dll file was generated by

	: > empty.c
	gcc -s -o shared empty.dll empty.c

and recompiled.dll was generated by recompiling at a later time.

The original plan was to adjust the time date stamps with PE Explorer's
trial version's Tools>TimeDateStamp Adjuster to the kick-off time of one
of the most exciting games in the past few years.

However, PE Explorer is a little bit too overzealous and does more than
just adjusting the time date stamp: in this developer's tests, it added
a BSS section!

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

squash! Add example .dll files for the upcoming DllFile test

Mention PE Explorer being too overzealous

squash! Add example .dll files for the upcoming DllFile test

Mention PE Explorer being too overzealous
Verify that the DllFile class correctly compares real .dll files

When recompiling an empty .c file into a .dll, it is a pretty surprising
thing for the unsuspecting developer that the result is not byte-wise
identical. The reason is that several time date stamps are part of the
.dll file format, and that there is a checksum, too, that changes with
the time date stamps, too.

To handle such cases, we just added a class to compare .dll files and
report whether they are functionally identical.

This commit adds a unit test.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
DllFile: compare against a URLConnection, not a File

This makes it more convenient for the intended use case: to compare .dll files against the current version on the update site.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>