This patch diverges quite a bit from the current upstream [1] in a few
ways:
1. virtual_oss(8), virtual_bt_speaker(8) and virtual_oss_cmd(8) are
actually separate programs.
2. Backends (lib/virtual_oss) are built as separate shared libraries and
we dlopen() them in virtual_oss(8) and virtual_bt_speaker(8) on
demand.
3. The sndio backend and virtual_equalizer(8) are built as ports,
because they depend on third-party libraries.
4. Fix compiler errors and warnings, which in some cases requires some
rewriting.
[1] https://github.com/freebsd/virtual_oss
Sponsored by: The FreeBSD Foundation