Support float and double in Obj-C method return values

NSInvocation seems to handle the case of floating point return values pretty
well, but if we ever switch to libffi to call Objective-C methods, we should
invoke objc_msgSend_fpret instead of the usual objc_msgSend

Also checking if the method returns void is a bit simplified: it now gets the
signature of the already constructed NSInvocation object
1