`Combine` trait for string and collection concatenation

Rendered: https://github.com/apoelstra/rfcs/blob/compose-trait/active/0000-compose-trait.md

cc https://github.com/rust-lang/rust/issues/16541
This doesn't actually work; iterators need `&mut`, while the trait only provides `&`.