Adding a mechanism to reset the FIFO, this helps us recover from underruns,
recover from pausing, etc...

Now we have to detect the underruns on the fly...