This patch includes the last version of the rewrite made for the meshdata_transfer branch which wasn't included within the git-migration process

The history itself isn't preserved anymore as it would take too much effort to split the work again

Current rewritten features:
-shapekey, vertex group, UV and vertex color transfer by both indices and topology
-support for layer range transfer except for the vertex groups which would need a special treatment due to the way its being used as a single CD layer

Features that weren't rewritten yet:
-the transfer by interpolation
-the relative to target option with tolerance which supports copying from different small sources
fix previous commit: forgot adding the bmesh_data_transfer.c and bmesh_data_transfer.h files to be tracked