Rework implementation of ndarray

Pythran's ndarray had very poor performance for extended slices,
while extended slices are used a lot in numpy codes.

This commit fixes this, trading the linear transversal approach for a
hierarchical, iterator-based, approach. This unfortunately leads to a
major rewrite of all numpy-related pythonic code.

Several test cases have been added in addition to existing ones,
especially concerning extended slicing.

Note that this remove OpenMP and Boost.SIMD support for ndarrays.

First Step!
Fix Pythran typing of extended slice
Support implicit type promotion for bool array sum

As reported by Ian.
Implement axis version of ``numpy.roll''