_openslide_read_key_file() type and initialization cleanups
Reject overlarge key files without first reading 1 MB

The hamamatsu driver checks for VMS/VMU by trying to read the slide as
a key file.  We refuse to read more than 1 MB, but we weren't bailing out
until after reading it.  As a result, we were always reading the first
1 MB of e.g. TIFF files into RAM.  Instead, check the file size before
doing any reading.

This also allows us to allocate the buffer in one pass rather than
repeatedly reallocating.
Reduce file size limit for VMS/VMU key files to 64 KB

This should be sufficient for real VMS/VMU files, but will prevent us
from reading non-Hamamatsu files > 64 KB and <= 1 MB into RAM before
rejecting them.
Have vendor backends provide format descriptor struct
test: Check openslide.vendor in successful cases
Set openslide.vendor property from generic code
hash: Avoid extra open/close cycle in _openslide_hash_file()
hash: Don't hash file parts if hash is disabled

This doesn't make a difference in any of our current code paths, but
makes the hash API somewhat clearer.
Always pass non-NULL osr to try functions

including in the openslide_can_open() path.  This simplifies several
code paths, eliminates can_open() false positives due to skipped work,
and shouldn't affect can_open() performance too much.
Consolidate open function error paths
Have property-setting functions take osr instead of GHashTable *