fix vector and struct in generational gc

All functions in generational gc
now support vector, struct and struct-instance.

ToDo: struct data type is treated as pointer of
struct-instance, not as root. Should use set-root!
or similar to update struct's location so `make-s`
would use the right struct location to allocate
struct-instance data type.