Improve fingerprinting of documents

Fixes two issues:
- #4456 : The first 100 bytes are often not unique as they can be
filled with standard PDF headers - so we use the first 200 KB instead.
(This may be overkill)
- Some documents we encountered have invalid xref ids, which were
always coming out as ‘0000000000000000’ - so we detect that and use the
MD5 instead.

Note: This does change the fingerprint for all previous documents, so settings etc would be lost. Maybe they should be migrated or is that acceptable?
(Looking at https://github.com/mozilla/pdf.js/pull/5332/files#diff-1) Could you replace this.stream members access by `this.stream.pos = 0; var bytes = this.stream.getBytes(FINGERPRINT_FIRST_BYTES);`?