add luaA_Type to the signature of PushFunc and ToFunc

this ease code factoring since these functions can now be reused with multiple types. 

In particular it allows to find the size of the type in the push function and thus use malloc/memcpy to create a full user data.

the drawback is that it breaks compatibility since we change the signature of the functions