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, the changes to the constructor make the code both more difficult to read and harder to maintain. Because of these two factors, It was recommended that I skip the changes to the constructor and only include the changes/additions to tests.
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/