Implemented copy constructor and assignment

They are used by gcc in std::make_tuple function instead of move
assignment