[draft] Generalize backend conversion functions.
Collect the local helper lambdas as proper free functions. Make them understand vectors that are wrapped in shared_ptr.
This adds typeutilities for shared_ptr which is the main reason why this MR is tagged as WIP.
Edited by Carsten Gräser