Improvements from Magnus Karlsson

* New cmd-line option (-d) that allows you to specify the FTDI device.
This was asked for in this forum.
* Spartan-6 LX4 - LX45 parts are added to the built-in device list
* The fpga wait-code is put back
* The code now supports many more flash parts
* The number of pages in the Macronix part is corrected (32768, not
250000)
* Misc corrections here and there in the code
* The erase-before-programming is now handled by a new routine
(Spi_PartialErase) that tries to be smarter about the erase.  For the
parts used by Jack (SST and Micronix) it still erases the whole chip (I
didn't want to mess with the Papilio use) but only verifies that the
area needed by the bit file is erased (for speed improvement).  On the
generic parts (Micron, Winbond etc) the routine uses block erase so that
only the the area used by the bit file is erased and verified.  This
will greatly improve the erase time on large parts (like the 128 Mbit
Micron chip) and also allow the flash to be used for other things (in my
case the Linux kernel) since that part is now left intact after a
bit-file flash update.  It would be easy to use the same partial-erase
code for the Macronix flash but I didn't want to change how the code
works for Papilio Pro.  The erase-only command (like what you used
above) is still erasing and verifying the whole chip on all flash
variants.