We can't check the length of an SHB until we determine the byte order.

Don't check a possibly-byte-swapped length against the minimum SHB size;
it'll probably look huge if it's byte-swapped, so the test won't fail
even if it is too small, and a really huge SHB's length could look too
small if it's byte-swapped.

Do the check *after* we've read the fixed-length portion of the block;
yes, that means we've read past the purported size of the block at that
point, but if that read succeeds, that doesn't matter, and if that read
fails, it just means we'll report "file cut short" rather than "bad SHB
length", *both* of which are problems with the file.

(cherry picked from commit 0ac944944233b49c77a77da65be19ce4c2e65647)

Change-Id: Ib0615187b05c692e983ab615872037e9c54ead42
Reviewed-on: https://code.wireshark.org/review/4693
Reviewed-by: Guy Harris <guy@alum.mit.edu>