This is useful for detecting the end of the file without having to wrap the entire parser code in `try: ... except: ... clauses when parsing a PSBT. See D16333 for a use case.
Now this moves the responsibility to raise an error to callers of that function when None is returned, do that in the two callsites.
Add test coverage for read_compact_size, add test coverage for the two errors now raised in deserialize_blob and deserialize_sequence (one of these is already indirectly tested in test_avalanche.py when deserializing garbage data as a Delegation)