Ogreshavelayers

Two major changes:

* Scanner now takes in the layer and version it is looking for. I made a convenience constructor function for mp3s also, so we don't have to think about this too much.
* Refactored the scanning code to do lookahead, so it'll check that a frame that it finds actually points to another valid frame.