Temporarily limit usb transfer sizes to 512 till we provide a way for each driver to choose the upper limit.
Sleep for less time in wait_avalon_ready till we have a better signalling system from read thread to write.
Use a half nonce range before cycling through avalon's scanwork to ensure it gets a chance to fill work if time is tight for the write thread to signal a wakeup.
Revert "Sleep for less time in wait_avalon_ready till we have a better signalling system from read thread to write."

This reverts commit 98862b4f46b801e14b9474fdac4286145cbdf6b6.
Minimise the sleep times in avalon read to avoid result loss.
Use low latency usb transfers on the avalon, sleeping up to half a buffer's worth only if no data is returning to increase hashrate, abolish lost work and decrease CPU.
Change avalon no valid work message to no matching work to match API terminology.
Use only one cgsem in avalon signalling when the write thread should commit work by reading the status bytes off during an avalon_read, minimising the number of usb calls and resetting from only one place.
Only update hashmeter if we have done hashes or haven't updated longer than the log interval, fixing a us/ms error.
Reinstate the maxPacketSize determined by the end descriptor but allow the driver to override it.
Set the avalon preferred packet size to 512.
Show an integer only for diff if it is one.
Use the nusleep function for sleeping after sending work in avalon.
Sleep after sending icarus work to emulate working at 115200 baud.
icarus add errno to rerr and werr
undo icarus show errno, put it as debug in ubsutils
Support new overclocking speeds for avalon: 325, 350 and 375
Merge branch 'master' of github.com:ckolivas/cgminer