bootloader (sw): Quiet the hex file loader
bootloader, firmware: Fix delay logic

The original code overflowed.
bootloader (sw): Initialize vidpid_valid to false

It was uninitialized before.
bootloader (sw): Allow opening an empty hex file

This is so that bootloader_init() can be called even when no hex file
is required. This will be useful for --reset, and for serial number
and MAC address in future commits.
bootloader (sw): Allow --reset without providing a filename

Allow the user to not provide a filename if they are performing a
reset with --reset.
bootloader (sw): Fix warning when logging is disabled

Use vararg macro to turn log() into a no-op.
bootloader (sw): Clean up logging

Make different logging types selectable at build time. Current types are:
	DEBUG - general information
	LOG_LIBUSB_ERRORS - libusb error codes
	LOG_HEX - Hex file parsing info
bootloader (sw): Add verbose output

Turn verbose output on with -l (loud) or --verbose .
bootloader (sw): Correct short temporary array

Array was one too short.
bootloader (sw): make the syntax C89 compliant

The Visual Studio 2008 C compiler will only do C89 syntax.
bootloader (sw): Fix compile warnings in Visual Studio
bootloader (sw): Port code to VS 2008

Port the code to Visual Studio 2008. This is code only, not the project
or workspace files.
bootloader (sw): Add Visual Studio project

Add the project, solution, and libusb vsprops for the Bootloader.
gitignore: Ignore Visual Studio generated files
bootloader: Enable WinUSB support

The WinUSB descriptors allow the bootloader software to connect to the
device on Windows.