std::shared_ptr
Iconv is also available on Windows so not specific to the POSIX backend. Instead of a shared_ptr to a vector we can simply use a `std::array`. Finally the `iconv_t` can be put into an RAII class.