cmListFileLexer: Do not require files to be seekable
Read the BOM sequentially and store the read bytes for later use if these do not correspond to a BOM. This allows FIFO to be used as input, e.g., for piping input or Bash process substitution.
Closes: #25162 (closed)