Don't mix old- and new-style FIND_PACKAGE_HANDLE_STANDARD_ARGS calls

Some (all?) versions of cmake seem to get a bit confused when an old-style
FIND_PACKAGE_HANDLE_STANDARD_ARGS call fails, and the scripts attempt a new-
style call later on. It continues to think it's using old-style, acting as if
REQUIRED_VARS is the message and looks for a VERSION_VAR variable.
Use a struct to store the source's direct gain/gainhf properties
Avoid accessing the source's buffer queue head multiple times
Avoid locking the mixer when unqueueing buffers
Update the source send target gains properly
Store the filter reference frequency in the source
Make LOWPASSFREQREF a float value