types: tuple: fix std::move() in constructor
types: tuple: fix std::move() in constructor

In an expression like:

  tuple_type_impl(make_name(types), std::move(types));

the order in which arguments are evaluated is unspecified and it
is possible that make_name() is called with types already moved
away.

This is fixed by using initialization list (for which order of
evalutaion is specified). Unfortunately, this also requires some code
duplication.

Signed-off-by: Paweł Dziepak <e29bb3265626c60caf76d587cabdfcd8b379ef80@cloudius-systems.com>

aruanruan/scylla,rluta/scylla,senseb/scylla,guiquanz/scylla,asias/scylla,capturePointer/scylla,bowlofstew/scylla,rentongzhang/scylla,gwicke/scylla,dwdm/scylla,kjniemi/scylla,scylladb/scylla,stamhe/scylla,respu/scylla,victorbriz/scylla,kangkot/scylla,dwdm/scylla,dwdm/scylla,scylladb/scylla,wildinto/scylla,tempbottle/scylla,kjniemi/scylla,avikivity/scylla,duarten/scylla,wildinto/scylla,aruanruan/scylla,asias/scylla,stamhe/scylla,kjniemi/scylla,eklitzke/scylla,victorbriz/scylla,stamhe/scylla,justintung/scylla,shaunstanislaus/scylla,scylladb/scylla,raphaelsc/scylla,shaunstanislaus/scylla,senseb/scylla,capturePointer/scylla,duarten/scylla,glommer/scylla,acbellini/scylla,aruanruan/scylla,guiquanz/scylla,guiquanz/scylla,gwicke/scylla,avikivity/scylla,respu/scylla,phonkee/scylla,rluta/scylla,phonkee/scylla,glommer/scylla,linearregression/scylla,rentongzhang/scylla,kangkot/scylla,wildinto/scylla,kangkot/scylla,bowlofstew/scylla,asias/scylla,raphaelsc/scylla,tempbottle/scylla,rentongzhang/scylla,shaunstanislaus/scylla,eklitzke/scylla,justintung/scylla,raphaelsc/scylla,acbellini/scylla,acbellini/scylla,phonkee/scylla,senseb/scylla,rluta/scylla,victorbriz/scylla,bowlofstew/scylla,capturePointer/scylla,scylladb/scylla,tempbottle/scylla,linearregression/scylla,respu/scylla,linearregression/scylla,avikivity/scylla,duarten/scylla,justintung/scylla,eklitzke/scylla,gwicke/scylla,glommer/scylla