Only work with named files, not stdin

While this is removing functionality, it enables me to work with a
philosophical mindset more conducive to what I'm trying to accomplish
with this particular program: to quickly identify modules, instruments
and samples in a list of files.  I can't imagine why anyone would
be piping any of these.  This will also let me eventually weed out
false positive matches (not that I've noticed any myself, but it's
bad design philosophy to allow them at all).
More or less revert commit 759883

While it's good to show instruments and samples within modules, and
samples within instruments, I shouldn't brute force it.
Loop within each file

This is a bit experimental, but *if* we can work out how long each
block of data is within a file, then we can simply skip that many
bytes at the end of each data-type-specific function, until we're
at the start of the next block (eg from an instrument header to its
first sample, and from that to its second sample, etc), allowing us
to iterate through the whole file efficiently and quickly, without
having to brute force anything.
Implement seeking in instrument and sample headers

Not module headers themselves yet, mind, as they're variable length,
so that'll take a bit longer.

Squashed commit of the following:

commit 732cd82ddc86a6a40be41c819c86a6c5eafbb1ae
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 23:03:04 2014 +0000

    Note what to do later; tidy comments

commit cbde5e0522a9c08134b635820c92726fe47e78c3
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 22:56:52 2014 +0000

    I think this is taken care of... :D

commit b59fe9f56be7310b01f6e55e648d44dc5a1203c3
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 22:54:59 2014 +0000

    Successfully skip sample headers

    ...as well as instrument headers.  Only module headers to go!

commit 9f988dc75144f5f8c8c45150b4ead2bf2ada9aa7
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 22:46:10 2014 +0000

    Solve one little mystery

    I suspect the apparent nonlinear ratio was due to non-printable
    characters.  I'm still not sure why the number to skip is that
    specific number, mind.

commit 2f271ca82293fc836280ba5ebaa44b8f085971d9
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 22:37:02 2014 +0000

    Revert "Add note"

    What the hell am I talking about?  Sample files are a sample header
    then sample data.  Instrument files are an instrument header then
    sample headers then sample data.  Module files are a module header
    then instrument headers then sample headers then sample data.  So
    yes, I can treat them all the same.  The trick is to stop looking
    once you hit the first non-IMP data block, as that'll be the first
    actual sample, not sample header, after all the headers.

    Wow, this is a lovely, elegant set of data formats.  They're not
    even distinct, they're simply bunched up in a nonlinear way, in
    MIIISSSsss format, instead of the
    MISsssSsssSsssISsssSsssSsssISsssSsssSsss format I was expecting.

    This reverts commit dfe68b88bff55e42c6c6a78f3700da006b324a56.

commit dfe68b88bff55e42c6c6a78f3700da006b324a56
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 22:36:55 2014 +0000

    Add note

commit 0d65d8e3b4a6ce38cae5e395bffb226c8eb2c298
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Jan 10 22:31:37 2014 +0000

    Work on code

    It's currently buggy, hence not committing on the master branch.
    I'm trying to exit routines with a graceful seek to the start of the
    next data block, if any.