Support C function types in Obj-C resolve

Function types are serialized into strings which in many ways are similar to
function descriptors in JVM, e.g. '(LNSObject;IZ)V' is a function which takes
NSObject, int and BOOL and returns void. Only C pointers to function types are
supported for now.

ObjCTypeResolver now has a small built-in parser, capable of recursively
constructing function types
1