Stop supporting kUnknown_BmpHeaderType DO NOT MERGE

In SkBmpCodec, if the header size does not match a known header,
stop trying to create an SkCodec. We do not know of any BMPs with
arbitrarily sized headers, so this should not cause any real
regressions.

In addition, this fixes a bug where we attempt to read too much data
from a file. Since we attempt to read the header size in one read,
and a size reported by the "BMP" may be larger than SSIZE_MAX, this
will crash when reading from a file.

Add a test.

Bug: 33651913
Bug: 37627194

Conflicts:
- tests/CodexTest.cpp
  - Add the new test without others that have been added since
  - Use SkAutoTDelete instead of std::unique_ptr

Change-Id: I0f03acec5981869554b05cd8ccb75d7c87361019
(cherry picked from commit 71eb09f952b7a8c56149e485cf452f03c0e834c6)
3 files changed