Implement serial read/write functions using Windows overlapped API
Update scrypt UDP proxy code for Windows compatibility
Upgrade Gridseed driver to support direct serial I/O without libusb.

This commit adds preliminary support for the same dual-interface capability
of the Zeus driver to the Gridseed driver. This is mainly of interest on
Windows systems, where libusb's required alternative drivers can present
undue complexity.

(Note: While direct serial I/O is functional with this commit, its
use on Windows systems will result in poor performance in its current
state. Further commits will address this.)
Make Gridseed and Zeus drivers use overlapped I/O on Windows.

Necessary because by default simultaneous reads and writes from
different threads will block on Windows.
Use calculated hashrate until first result is returned.

Prevents cgminer from marking miners SICK initially when
difficulty is high. Mostly of concern for solo mining.
Make possible solo mining without specifying a target address.

The getblocktemplate protocol requires specifying a block reward
target address under certain circumstances. If no address is
provided, fall back to using getwork protocol instead of raising
an error.
Quell compiler warnings
Add overlapped I/O option to serial_open_ex, silence compiler warnings
Add option to specify delay before switching back to a failed pool
Gridseed: fix serial autodetection and scrypt proxy
Documentation updates
Gridseed: use port name as ID in serial I/O mode
Correct hex string length when submitting getwork results
Merge branch 'next'