Changed global combiners to take into account subfunctions

Pythran requires the user to specify the call to a function in advance when the function changes a global.

This because globals are declared outside the functions, so mixing it with the template system of the functions is difficult.

But let's say the global is modified like that:

def b(x):
    global y
    y = x

def a(x):
    b(x)

And `b` is a function only used internally in the module, whereas `a` is used by people importing the module.

We want the user specifying the types of the arguments to a to be enough. So we have to know that a indirectly changes the global y, and deduces the right things to do.

That's what's done in the commit. Thanks to the callees analysis introduced in the previous commits, we know all the function calls inside each function, and we used that to include effects on global's types from sub functions (called functions) to the effects on global's types for the current function.