- Use a context manager to handle file handlers (closing both in the
case of compressed files).
- Seek past BHead data instead of continually reading
(checking for 'REND').
- Write errors to the stderr (so callers can differentiate it from the
stdout).
- Use `surrogateescape` in the unlikely event of encoding errors
so the result is always a string (possible with files pre 2.4x).
- Remove '.blend' extension check as it excludes `.blend1` files
(we can assume the caller is passing in blend files).
- Define `__all__` to make it clear only one function is intended
to be used.