Add init_code mechanism to register code in module init function

Use that mechanism to finish old TODOs
Try to maintain order of includes, become in this case (numpy/arrayobject.h and numpy/arrayscalars.h) the order is important.