get_func_args maximum recursion fix #728

Fix for the issue: #728
2- It just looks cleaner. Less nested conditions - easier to read and thus better:

```
if inspect.isroutine(func):
    return []
elif stripself is True and getattr(func, '__name__', None) == '__call__':
    return []
else:
    return get_func_args(func.__call__, True)
```

Also an option:

```
if (inspect.isroutine(func) or 
        stripself is True and getattr(func, '__name__', None) == '__call__'):
    return []
else:
    return get_func_args(func.__call__, True)
```

but it could be hard to read if you ask me.