Add support for struct types

This includes platform specific types: {NS,CG}{Rect,Size,Point}.

gencode.rb is a bit of a mess, but at this point it's not enough of a concern.