Reintroduce IsSolvable
Summary:
IsSolvable was added temporarily from D3121 .. D3136. At the time it looked
like it was a witness-only thing but it gets used in some other ways in Core
codebase now and so it's useful for backports. The basic concept of
solvability is 'Do I have all the pubkeys for this in my wallet, so that
if I had the private keys, then I would be able to fully sign this input'.
It was introduced in 2015 in d3354c52d7c0c6446cad4074c1d0e04bb1b3d84e .
This reintroduces IsSolvable in a form that includes the skipped changes from
already-done backports:
D3888 (PR12714)
D3889 (PR12803)
D4736 (PR13534)
D4420 (PR13697)
Test Plan: ninja check
Reviewers: #bitcoin_abc, deadalnix
Reviewed By: #bitcoin_abc, deadalnix
Differential Revision: https://reviews.bitcoinabc.org/D4912