Add serialization for std::vector<std::unique_ptr<T>>
add other smart pointer serialization