[FPD] Fix race condition in FPD output thread start/stop

There was a race condition where new data could come in after
the FPD output thread was told to stop.  In FPD_StopOutputThread(),
we were waiting checking to make sure there was no more data waiting.
This race caused us to wait until the next sequence ended meaning we
would skip sequences during playback because the main channel output thread
could not be started again.  Instead we now check to see if the FPD
output thread has stopped or wait up to 110ms max to make sure that
we will allow the main channel output thread to continue.
(cherry picked from commit 540ba9eb26ee3e051449fb38c7aa223cb9178521)
[Falcon] Fix off-by-one error in start channel in F16v2 config
(cherry picked from commit d928b3674fe05dce4b6b212a3a380f163edee1e6)
[C++] C++ fixes for compiling with g++ on the Pi.
(cherry picked from commit a58b207f37b99bcbde1fdbde26794bdc72a47f91)