column_specification_or_tuple is now used internally, wrapping and a column_specification or a vector and immediately unwrapping in the callee. The only exceptions are bind_variable and tuple_constructor, which handles both cases. Use the underlying types directly instead, and add dispatching to prepare_term_multi_column() for the two cases it handles.