Merge the PCM_READ|WRITE_* macros defined in pcm/pcm.h, as well as the
intpcm_read|write_* macros defined in pcm/feeder_format.c, into two
inline functions - pcm_sample_read() and pcm_sample_write(). The absence
of macro magic makes the code significantly easier to read, use and
modify.
Since pcm_sample_read() and pcm_sample_write() take the input/output
format as a parameter, get rid of the read() and write() function
pointers defined in struct feed_format_info, as well as the
feeder_format_read|write_op() functions, and use pcm_sample_read() and
pcm_sample_write() directly.
Also add unit tests for the format conversions, which are run as through
the hw.snd.feeder_format_conv_test sysctl.
Sponsored by: The FreeBSD Fondation
MFC after: 1 week