Add new functions to the interfaceinfo and typeinfo modules

- Use generic type T for the 'to_gi_*' functions.
- GITypeTag and GIArrayType deriving Show,FromPrimitive.