KnC: Update ASIC library to current version
KnC: Framework for async SPI messages
Update knc-asic library to current version
Correct SPI buffer management
Update to newer knc-asic version with knc_decode_response()
knc_transfer() for transferring requests using async SPI
Switch to async SPI transfer model
KnC: Limit SPI transfers to 4KB. Beaglebone SPI kernel driver doesn't handle bigger transfers
KnC: Use consistent naming on the transfer functions
KnC: Correctly associate reports with their originating core
Prepare for pending slot during setstate
Update knc-asic to current version adding knc_decode_report
KnC: Use knc_decode_response() to make response processing more readable
KnC: Catch communication errors again, blocking cores which repeatedly fails communication
KnC: Recover automatically if core state and cgminer state gets out of sync

handles communication errors, reset cores, and other situations where cgminer core state and actual core state gets out of sync
Update knc-asic to current version, fixing next_state response bit decoding
Update to current knc-asic library for KNC_IS_ERROR()
KnC: Improve and correct error handling
KnC: Rewritten SPI layer to use asyncronous trains of SPI messages

this improves SPI performance by many magnitudes or order by batching
many requests in a single SPI transfer.

in addition there is significant improvements in error handling, greatly
improving the driver response to communication errors and various soft
core failures.