New msgtx generation

You're right that addChange() has its own tests, but still if I introduce a bug in addChange() I may cause all tests that use it to setup their state to fail, when ideally only TestAddChange* should fail. In general, we should make an effort to ensure our unit tests fail only when we break the stuff they're actually testing. As always, it's not easy to draw the line on when to use something like addChange() and when to manually set .changeOutput, but I think in this case it's fine. 

I'm not sure I understand what you mean by using internals everywhere - both addChange() and changeOutput are internal bits.

(Couldn't post this together with the original discussion; github kept giving me an error)