46ce223d1 Add tests for CMerkleBlock usage with txids specified (James O'Beirne)
Pull request description:
What started as a simple task to add test coverage ended up giving way to a light refactoring. This consolidates the mostly-identical `CMerkleBlock` constructors into one (using C++11 constructor delegation) and adds coverage for the by-txids construction case.
### Before
![selection_006](https://user-images.githubusercontent.com/73197/30242104-0f381fe4-9545-11e7-9617-83b87fce0456.png)
### After
![selection_008](https://user-images.githubusercontent.com/73197/30242107-1425dfaa-9545-11e7-9e6b-2c3432517dd1.png)
Tree-SHA512: eed84ed3e8bfc43473077b575c8252759a857e37275e4b36ca7cc2c17a65895e5f494bfd9d4aeab09fc6e98fc6a9c641ac7ecc0ddbeefe01a9e4308e7909e529
Changes made in D3371 have decided the issue of code ownership. In addition,conflict with the original PR; the constructor has been updated to the form it would take if D3371 would have been implemented after this refactoring. the changes to the constructor make the code both more difficult to read and harder to maintain without providing any real benefit. Because of these factorsThis private constructor is more strict than the original one (the original could be called with either, both, I skipped the changes toor neither of the constructor`filter` and only include the changes/additions to tests`txids` parameters).
Partial backport of Core PR11293 (only including test changes)
https://github.com/bitcoin/bitcoin/pull/11293/
Also includes left over changes to PR12920
https://github.com/bitcoin/bitcoin/pull/12920/