Implement a per tx sigops limit of 20k
Summary:
Because the sigops limit is now dependent on the block size, it is possible to create a transaction with very many sigops, and fill the rest of the block with transaction that aren't as dense in sigops.
This causes the validation to nto scale linearly with the block size, and we want to avoid this.
Test Plan:
Added unit test for the context free test case.
The check in ConnectBlock still requires an integration test.
Reviewers: freetrader, sickpig, #bitcoin_abc
Reviewed By: freetrader, #bitcoin_abc
Differential Revision: https://reviews.bitcoinabc.org/D129