Fix complexity issue in type dependencies gathering

Previous complexity was O(n!), which was a bit too much. New
implementation limits combinatory burst as much as possible.

This fixes issue #102.
Update documentation to reflect recent changes

* Make it clear we use numpy
* Install procedure in the README is simpler
* Add a numpy use case
Export CompileError exception class at package level
Make random tests more reliable

Increasing the number of samples should do the trick -- at least it does
on my laptop.
Fix bad typing in tuple creation

Rely on std::make_tuple to do the job.
This Fixes tests/cases/pivot.py.
Fix bug when creating ndarray from raw buffer

There was a bug in the python -> pythran function...
Enforce type checking upon conversion of ndarray from Python to Pythran

Previously, an optimistic cast was always done...
No longer skip some test cases

They are ok now.
Support array broadcasting for gsliced_ndarray
Support update operator for ndarrays
Cleaner type inference support

Rely on __combined specialization rather than operator+ overload
Typing: limit the number of combiner created per function
Do not rely on auto for tuple unpacking

Using the auto typing omits the assignable/lazy type adaptor system,
which is bad in presence of numpy expression.
More benchmarks

From rosetta & numba website
Also unlock quicksort ones
User driven typing complexity control

Introduce two config parameters with reasonable values to limit typing
complexity burst.

Thanks to these, all test cases can be correctly computed.
Add support for array filtering

It is possible in numpy to take a slice of an array using an array

b = array(...)
print a[b]

is now supported, with a huge impact on the typing system...
Fix PEP8 test module

The usual capturing thing was not taken into account, so the PEP8 only
tested a single module.

Fix this and the associated hidden errors.
import extended slices performances
Update TODO list
Enable definition of function with the same name than an intrinsic