Refactor the CPU scanhash_* functions to use a common API. Fixes bugs. - Before, some returned bool, and others returned int (which was then turned into a bool with a comparison); now, everything returns a bool - Before, some set hashes_done to nonce - 1 when a share was found and others set it to nonce + 1 or 2. This caused some algorithms to scan/submit shares twice with the new cpu_scanhash function. Now, it has all been replaced with last_nonce, which is set to the final nonce checked by the scanhash_* func. - VIA needs the full data, and cannot use midstate. All the others were expecting midstate and data+64 for their parameters. Now, we pass midstate and the full data pointer, and let the scanhash_* function choose which to use.