[schnorr] Refactor the signature process in reusable component
Summary: This will make it easier to implement more evolved schnorr constructs such as blinded signatures and multisig.
Test Plan: Adapted test cases to reflect the changes.
Reviewers: #bitcoin_abc, markblundeberg, Fabien
Reviewed By: #bitcoin_abc, markblundeberg, Fabien
Subscribers: Fabien, markblundeberg, jasonbcox, teamcity, schancel
Differential Revision: https://reviews.bitcoinabc.org/D2457