Use C++ `std::string`s in `options_t`.

This is to allow `options_t` to be copied safely, and passed by
reference to `output_t` instances which will be able to own them.
Made `output_t` own a copy of the `options_t` object.

This allows it to be overridden for the `output_multi_t`
implementation.
Hook up `output_multi_t` to the `output_t` factory.