Fixed ftdi_read() to properly implement timeout (libftdi's ftdi_read_data() has been reported to not obey that timeout)