Also avoid ReadBytes calls that allocate a buffer by either updating the stream position (if not interested in the bytes), by reusing an input buffer (if interested in the bytes), or using a stackalloc buffer to avoid the allocation (for small reads).
These parts were identical duplicates, so I removed them
and made AudReader depend on ImaAdpcmReader instead.
Applied some style fixes while I was at it.