Implement exponential backoff on 0 return

ftdi_read_data returns the number of bytes read (+ve), 0 when there is no data
to read, and negative when there is an error.
Instead of infinitely waiting for the data to appear, it is better to implement
an exponential backoff which times out after MAX_BACKOFF.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Implementation of serial_enumerate

Proper implementation of serial_enumerate.c
Get a list of attached ftdi devices and pass the struct libusb_device in
callback function for every device found. For this, the definition of
serial_callback_t has been changed. Changing const char *name to const void
*params so that char as well as libusb_device can be passed.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>