Makes the USb endpoint reads actually check the buffer being empty/full instead of just assuming that epComplete tell us that.
This fixes lost buffer bugs in case of double buffered endpoints.