Fix function in call is S3 matching
Fix function in call is S3 matching

If `b` is a `do.call(function(...))`, the `is_S3_user_generic` will check a `function` in the next recursion.
Because this can not be indexed by `b[[1]]`, we get the following error:

> Error in b[[1]] : object of type 'closure' is not subsettable

The PR additionally checks if `b` is a function, and gets its body if it is.

Alternatively, if `b` is a `call` and *not* S3, do we *need* to check its contents for S3?
klmr/modules,klmr/modules