Fixed the overflow issue.

The overflow issue was related to the '+ 2' I was adding to the buffer
size in the 'fill_bulk_usb_transfer' function. This told the FTDI chip
to send an extra 512 where I only wanted 2.
Working on reading and writing all of the memory

There is a unique behavior associated with 512 byte boundaries and the
FTDI. At those boundaries the FTDI chip will insert modem status bytes,
so I had to shrink the size of the transfer buffers to accomodate these
boundaries and predictably remove them