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