arrays. dot now works for generic expression

- dot generalized :
 -- for 2 vector<double>/vector_view<double> : use blas
 -- for 2 vector/view with different type, use a hand written algo without blas, with restrict pointer
 -- when there is one expression, use a generic algorithm