Changed FifoBuffer.Read(...) to return 0 rather than throw when there's an underflow