decoder/dsf: compare with InputStream::GetRest() instead of ..GetSize()
decoder/dsf: fix big-endian bugs
decoder/dsf: eliminate another hard-coded stereo mode assumption

When calculating the upper bound using the "sample count" format
header, don't assume it's stereo.
decoder/dsf: allow channel setups other than stereo

This finishes the multi-channel support.  Development of the feature
was started with commit 02cc77cd8
decoder/dsf: count the blocks, not the remaining bytes

Prepare refactoring the whole plugin to use blocks instead of bytes.
A block is the smallest addressable unit, and it will simplify the
seeking code.
decoder/dsf: don't skip remaining bytes

Nobody cares.
decoder/dsf: use the block count internally
decoder/dsf: eliminate pointless return statement
decoder/dsf: make the buffer more local

This allows the compiler to discard buffer contents between two
iterations.
decoder/dsf: refactor the main decoder loop

Check for STOP before decoding the first chunk.  This reduces the
command latency.
decoder/dsf: implement seeking