More operators are numpy expr
Specialisation for numpy_expr
Do not enable "function on 1 elts" for numpy array.
Avoid argmin, argmax evaluation.

* Test on argmin((a + 5) * 2) and array of 100.000.000 elts
* old implem: 803 ms
* new implem: 582 ms
* CPython : 776 ms
* Same on 2D array:
* old implem: 790 ms
* new implem: 536 ms
* CPython : 783 ms
avoid temporary allocation for array_equiv

* With a = numpy.array([range(1000) for i in xrange(1000)],
* dtype=float); b = numpy.arange(1000, dtype=float).reshape(1000) and
* use of Expression template:
* old version : 71.6 msec
* new version : 68.8 msec
* CPython : 74.9 msec
Enable use of  numpy_traits without ndarray
Remove unused variable warning when OpenMP is disable
Rework for asarray_chkfinite as uexpr
Rework at least 2d to avoid as many copy as possible.

* Reshape should be lazy too
Rework take as it could be lazy
Reimplementation for trace
Rework trim_zeroes
Add recursive version of numpy.unwrap
Forward declval to reshape avoid array evaluation in swapaxes function
Avoid an extra possible copy in numpy.sort

* sort_complex is the same as sort with default arguments
Add missing definition in numpy_expr_to_ndarray
Move broadcast type in separated file
Rework select function to be lazy
numpy.searchsorted correctly use numpy_expr
make numpy.copy lazy