Root cause was Box<dyn Trait> defaults to Box<dyn Trait + 'static>,
leading to the 'static lifetime "infecting" the generated iterators,
causing the borrow to last beyond the end of the function which dropped
the box or its containing structure.
The quick fix was to inject and add an explicit lifetime to the Box.
While tuning that fix, opted to inject lifetimes by implementing
Source methods on references. This tracks more with the C mtbl API,
where:
m = mtbl_merger_init(mopt);
/* populate m */
mtbl_merger_source(m);