Add support for array of complex numbers

Emulates real and imag attribute using a numpy_gexpr. Currently only
supports read mode.
Add error message when using an invalid method
Unfold range as loop parameter if unrolling failed

Otherwise we end up with very long literals where a simple for loop is
much more efficient.
Merge pull request #314 from serge-sans-paille/fix-complex-numpy

Fix complex numpy
Merge pull request #316 from serge-sans-paille/range-unfolding

Unfold range as loop parameter if unrolling failed
 Better matching for Dict
Better matching for set
Fix documentation
Repeat optimisation until nothing change.