More UI additions, FW ops, and animation & Linux fix

A menu system has been added which allows you to refresh COM ports in case you plug in or substitute a new communication device after launching the program.  You can also toggle between showing only LEDgoes USB Communicators (USB ID 0x0403:7AD0) or showing all USB devices.

The "View Firmware Version" FW op has been enhanced to show the FW versions on all boards.  Make sure the correct number of boards or the placement of boards has been specified prior to running the operation.  Also, "balanceChipIDs" is a new function that can take "sagging" chip IDs and reset them to what the auto-addressing algorithm intended for them to be.  Sometimes the voltage drop in the middle of a long string of boards causes boards in the middle to have too low of an address; this function fixes that problem.

The Animation tab accepts GIF images, and will now properly display your GIF on a correctly-specified marquee.

The Linux fix consists of joining all the ASCII characters representing one column worth of pixel data before sending it to the serial.write() function.  While this was not a problem in Windows 7, the underlying function in Ubuntu 14.04 complained when given an array of characters as opposed to just a string.
Cleaned up deps & added Linux executable

The bundled Linux executable reflects the previous commit (6ec7233a67)
Improve "compressChipIds" function

The UI now allows the user to enter a "gap" so that boards aren't just reassigned sequential values.  That is, with a gap of 4, your boards will be reassigned as 0, 4, 8, 12, 16, ...  The logic in the compressChipIds function has been modified to support the UI changes, and now works a bit better than it did before as well.

There are also a couple other minor changes.
Updating LEDgoes Setup MSI for Windows