Properly handle atrac packets with multiple frames.

This gets us decoding the start of a file and near loops way more
correctly.
Centralize atrac frame decode logic.
Ensure we request s16 samples.

We won't get these for atrac3+, but we should for atrac3 (seems to be the
default anyway, but better to be clear.)
Align samples even after a loop.

This corrects the amount of audio after certain loops, but it doesn't seem
to output the right data when this happens.

Possibly, seeking isn't doing the right thing and resetting state that
shouldn't be reset when a loop happens.  Not sure... but it was already
wrong before, this just reads the right amount of it.
Attempt to ensure we don't decode partial frames.
Don't eat packet data when using a temp packet.
Actually use the temp packet.
Discard packet data when seeking.
Merge pull request #6974 from unknownbrackets/atrac-minor

Properly handle atrac packets with multiple frames