Merge pull request #33 from Nagadum/map_correction

Map correction
Improve list slicing.

Handle cases such as empty_set + slice, list+=slice or list + slice.
Fix bad handling of maximum function arity.
Reestablish pep8 compliance.
Fix default optimization level.

Was (nothing), now is -02.
Also remove the need of -DNDEBUG which was pretty confusing.
Fix typing of weird recursive case.
Improve OpenMP support.

Support taskwait and test it.
Parallel Fibonacci implementation.

Typical showcase of task feature, here with sequential/parallel
trade-off.
Improve type inference for dictionaries.
Fix bugs in type inference in presence of subscripts.

Handle cases such as:

def foo():
    d={ 1 : set() }
    d[1].add("str")
Add package documentation using doctest.

So that the doc is validated using good old

python setup.py test
Add OpenMP annotations on pairwise distance example.

The speedup is not great due to conversion cost.
A few corner cases around empty_sets and empty dicts.

Concerning their bool conversion, or to-python conversion...
Handle intrinsic return aliasing properly.

Trickier than I thought, because the returned value (may) aliases to
some of the method parameters.

As a consequence introduce a return_alias attribute that describes the
alias relationship.

Also take into account the different alias when applying a combiner.
Improve documentation of passes.py.

Use doctest to validate documentation and improve tests.

Add a new backend, Python, based on unparse.py to dump the tree as
python code.

Fix a minor error in Exception else: handling thanks to this :-)
Fix bug in constant propagation.

Functions with global effects were not considered const.
Intrinsics had a global side effect by default.
Remove dependency on Pyflakes.

Most of the pyflakes detection features now come for free within
pythran, so better avoid extra code.
Give tribute for a code snippet from codepy.

Most pieces of code from cxxgen.py are borrowed from Andreas Klöckner
work.
Improve optimizations documentation through docstrings.
Fix tuple noramlizations that was incompatible with OpenMP directives.