Merge pull request #31 from artas360/master

Adding attributes recursive analysis.
Add == operator for sets.
Make it possible to call sum(...) on a tuple.
Fix bug in enumerate implementation when parameter is a const reference.
Fix bad ConstFunctionIntr inheritance declaration.
Preliminary support for global effects analysis.

Any intrinsic that has a global side effect can declare it in its
signature.
Fix pretty-printing of operators.

Adding spaces where it is relevant. Also avoids issues like

> a = b--1
Add a new analysis that propagates global effect information.
Fix bug in constant folding.

Prevent lazy behavior of the all intrinsic.
Fix a few bug in aliases computations.

Use None to represent that a node aliases to something we don't know of.
Make sure intrinsic only alias to themselves.
Better support of complex literals.
Rework pass management.

use a Passmanager class that offers the apply / gather / dump methods.
Each transformation / analysis get a reference to the passmanager.
Return statement cannot return a value inside a generator.

Even returning none is prohibited!
A few AST inconsistency.

Return statement loads variable, no Store.
orelse statement must be [] not None.
Fix default behavior of the method intrinsic.

Generally, a method updates its first argument (self) and reads the
others.
Add an analysis that detects pure functions.

A function is pure if none of its argument are updated and it does not
change the global state.
Make constant unfolding aware of pure_functions.

That way any user-defined function can be evaluated at compile time if
they are pure and only have constant arguments.

Output is limited in size, because pythran cannot handle lists of 2^32
elements, the typing system shows its limits there !
Make it possible to customize the optimization sequence used by pythran.

One can even plug its own transformation :-)
New analysis that detects parallel maps.

Piece of cake thanks to PureFunctions and Aliases!
Add support for dictionary comprehension.

Not the most efficient implementation ever, but generic and working.
Test case included.