Seek magic values on instances
## Background

I'm trying to describe some GPU bytecode blobs followed by some metadata. The bytecode itself is irrelevant, but the metadata itself is important for my use case. This metadata is a footer that describes said AMD GCN shaders generated by drivers/compilers that target AMD GPUs in PlayStation 4 hardware.

The hardware receives pointers to these blobs and starts executing instructions starting from said pointers until it reaches an `S_ENDPGM` instruction. Therefore, there are **no headers**. The only hint that a footer exists is the `OrbShdr` magic value. Even worse: This magic value appears in the *middle* of the footer.

In summary:
```
        bytecode                   metadata / footer
 _____________________ __________________________________________
+---------------------+------------------------------------------+
|         ...         |   ...   | "OrbShdr" | ... | length | ... |
+---------------------+------------------------------------------+
```

Additionally, there's a `length` field needed to determine how large the bytecode is. This is important since the first bytes of the metadata could be interpreted as valid AMD GCN bytecode. Therefore the first step in the parsing process is figuring out where the `OrbShdr` magic is.

---

In order to parse this, we need some way of seeking that magic value, I wasn't able to find any similar issues on GitHub, but I did find some comment from @GreyCat on the matter:
https://gitter.im/kaitai_struct/Lobby?at=5a6b952cce68c3bc740aafb5

Basically we could have something like:
```yml
instances:
  footer:
    seek: "OrbShdr"
    type: orbshdr_footer
```

The parser would actively search for the a magic byte sequence, and parses the rest of the format from there. Is this a reasonable feature request, or are there easier ways to implement this?