(fc sync) Break out R1 signature compaction
(fc sync) Break out R1 signature compaction

There is code buried in the R1 signing code that takes the r & s from a ECDSA signature, figures out which one of the 4 solutions goes with the given public key, and creates the 65 byte signature blob used in eosio

Break this code out so it is callable outside of r1::private_key class. We need this same logic when processing signatures from sources other than the r1::private_key class, like from hardware signers.

EOSIO/eos,EOSIO/eos,EOSIO/eos,EOSIO/eos,EOSIO/eos