Fix Reorder transformation with new dependencies analysis

Also add Callees and AcyclicCallees analyses, which allow a) to know what functions call which other functions and with what arguments, and b) the same thing, with the cycles broken if any, and also provides a graph of dependencies with those calls added to it
Fix Types analysis to deal with globals
Remove error when parsing code with globals
Prepare for backend - add C++ changes

For a rough explanation of how this will work, check this out: https://github.com/coyotte508/pythran/wiki/Typing-analysis
Change backend to deal with globals
Add export header and export macros when needed
Fix tutorial example
Add raw euler test cases

So we can test if they work with globals
test_env can capture output of __init__ function
Fix OrderedGlobalDeclarations

if a calls b and b calls b, a has greater weight than b. They used to be the same with the previous code.
Remove usedef + globals

When a global is used in a function before being assigned, it would raise the error "identifier has global linkage and can't be assigned"

Example in test/cases/globals.py