virtual_oss: Port to base
This patch diverges quite a bit from the current upstream [1] in a few
ways:
- virtual_oss(8), virtual_bt_speaker(8) and virtual_oss_cmd(8) are actually separate programs.
- 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.
- virtual_equalizer(8) and the sndio and bluetooth backends are built as ports, because they depend on third-party libraries.
- Use newer libav API in bluetooth backend (see HAVE_LIBAV ifdefs) to address compiler errors.
[1] https://github.com/freebsd/virtual_oss
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D52308