arrays: revert move assign op

This reverts commit cfb76a38aaf9cbdfd3146cf08791ceb566ea9761.
 and add further corrections.

- move assign op was erroneous  :

a_view = rvalue&& to a view should NOT move but copy.

eg.
auto V = A(1,range(2,4));
V = function_returning_a_view(....);
-> want the data to be copied into the view.

The first version was indeed correct.

- delete again the std::swap for views. Use swap.
arrays: fix bug in memcpy call

- rewrite the memcpy call : was buggy for views
- start removing const T type as array element
arrays. h5 : fix a missing return in write_array

	modified:   triqs/arrays/h5/simple_read_write.hpp
add make_clone in tail inversion

- aliasing pb in matrix multiplication

	modified:   triqs/gf/local/tail.hpp