CRAS: Fake select_device for Chrome UI

The Chrome UI needs select_device to work, so implement the behavior
as a combination of removing all active devs and adding the new dev to
the active list.  This will maintain the same behavior that users
expect.  The select_node api will later be removed once all users are
converted.

Change-Id: Ib1e513978bc9531af43a5aca59aac212c529110e
Signed-off-by: Dylan Reid <dgreid@chromium.org>
CRAS: audio_thread - basic dev speed tracking.

This can be removed one the sample rate estimation is integrated.

For now, if the device has too many or too few samples queued, wake up
streams later or earlier to try to get back within range.

Change-Id: I029d06fc897d75f8474b9bc8cdc1790eda133650
Signed-off-by: Dylan Reid <dgreid@chromium.org>
CRAS: test - log longest wake time

Change-Id: Iac9c215804dac8a457ae24d5bd07597fbe8d8f96
try to zero fill to recover from catastrophic output underruns

Change-Id: I96f5aa9daaf14e9de53f044998760f39dca778b4