- all callbacks accept user data argument
- start gy_gvalue.c
- split gy_callback.c and gy_argument.c out of gy.c