Make some more variants for copy_sample funcs and use them via function pointer.
... which only needs a bit of refactoring and extracting to support the minor difference in (i)vorbis interface. Fixes #609063.