Add support for seeking to arbitrary headers.

Before, we're not able to seek to arbitrary files in the archive. We had to scan from beginning like:

```OpenArchive()
while (GetNextHeader(&header) {
  if (header.name == requested_file_name)
    break;
}
// We have our compressed file!
```
It is very slow for archives with 10 000+ files. To fix the performance bottleneck, this patch introduces a SeekToHeader like method which allows to call:

```SeekToHeader(10);
GetNextHeader(&header);
// We have our compressed file!```