Support using Python types as numpy dtype

To do so, the version of int() long() float() etc. without parameters
must be available.
Distinguish containers with dynamic or static size

Use a type trait to achieve this goal, useful for list to tuple versus
array to tuple conversion.
Support the len_of trait for itertools.imap

In the way, fix a very subtle way of iterators not iterating on the same
object due to copies...
Support passing a tuple as parameter of numpy.ndindex

Also fix a bad iterator typing issue in the associated iterator.
Fix behavior of the modulo operator in presence of negative input

C++ and Python differ on that point: the output is always positive with
Python and not in C++.

Syndicate code with operator_:mod, do the same for operator_::floordiv
Support augmented assign for ndarrays
Add a difficult test case from parakeet
Fix dim_of error introduced in previous merge

It's only detected by g++, not clang++ and was caused by MA's
refactoring.
Fix modulo performance

Thanks coyotte for hinting.
Note that the branch is remove by both GCC and Clang.