Drillbit: Add support for "protocol version 4", non-device-specific configuration packet format
Drillbit: Be strict about not accepting any boards with newer protocol versions. Protocol version bumps are non-backwards-compatible.
Drillbit: Keep reading work for as long as the device returns results.

The firmware protocol has the concept of returning up to "N" result
packets in a single query/response. However in testing this turned out
to be problematic (at least with cgminer) so it actually now only
returns 0 or 1 as the result count. This is the case for all released
Drillbit firmwares.

This means the preferred method for reading results is to immediately
keep checking for results until a zero response is seen. On a 64 ASIC
miniplane (8x Eight boards) this turned out to be important, as the
internal queue is only 32 results deep and it was losing results when
running at a 10ms poll interval.

As it happens the firmware will wait up to 100ms for any results
before returning a zero result count to the caller, so the protocol
itself builds in a certain amount of poll rate limiting (this is a bit
of a weird design decision, I know.)
Drillbit: Clarify use of device_data pointer to store capabilities/protocol version temporarily
Drillbit: Add upper and lower bounds to "Eight boards have a multiple of 8 ASICs" check
Revert needless commit 270c1d01f, thanks @luke-jr
Merge commit '80bfd5f' into bfgminer