This would avoid confusion and help solve the bug T43998
Why does in C the active shape index have to start with 1?
With this change I do not see much need to do a do_version. But it is necessary to fix a problem in BM_mesh_bm_from_me when the active_shapekey is out of range (Basis is overwritten in editing).