FindAndHash reads all of r and returns the offsets of occurrences of id.
While reading, findAndHash also computes and returns
a hash of the content of r, but with occurrences of id replaced by zeros.
FindAndHash reads bufSize bytes from r at a time.
If bufSize == 0, FindAndHash uses a reasonable default.