Separate stdout from stderr in test and take union of inputs for merge

- Modify the testing harness to separate stdout from stderr.  This allows us to test stderr is what we expect it to be and mean's we're not relying on expected output files where stdout+err have been smushed together.
- Take the union of inputs for merge from -b's and input files presented on the command line.  Does not detect duplicated input files on input as yet.
- Add tests for merge
- Make usage for merge come out on stdout not error