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.