Fix #118 : hdf5 HL for old version of cmake
arrays : add MutableConcepts, clean matrix assign

- add MutableVector, MutableMatrix, MutableArray

- move the specialisation for matrices into the
assignment::impl class, so that it automatically
ok for matrix, matrix_view and any new class that
would model MutableMatrix.
--> in particular scalar assignment, scalar +=, -=

- deletion of *=, /= for non scalar moved back as
static_assert (interception) into the assignment::impl
class.
ctqmc_hyb: fix unused variable warnings

- as said by clang -Wall
doc : fix array cookbook

change = to <<
utility : factory improvement
arrays : minor fix on doc
arrays : change call in concept, simplify foreach

- moving the concept to full variadic
remove the key call with [] and replace with variadic call (was
almost done before)
- rewrite the foreach : move it simply in the domain :
only one version, the variadic one.

-clean and comment indexmap_storage_pair

- remove test of array of dim 9
-> test construction of large arrays .. to do
arrays: clean the const T construction pb

- assignment to array<const T> is forbidden,
with a better error message.
- construction of an array, matrix, vector
from a const T is however possible.
-> using another assignment op 'F' which remove the cast,
only called in the constructors...
-> replace the previous horrible hack ...
arrays : add move constr, = to views

- added move constructor, = for view, needed by sliding_view
- corrected left cout in domain
gf: squash many dev commits
gf: remove bracket evaluator

- [] only for mesh_index_t
since it has const and not const version, it is quite different
from () operator which is *always* const.
- For blocks, it does not change anything (only use at the moment).
- removing last "target"
gf: made gf_factories
introduce utility/macros.hpp to regroup macros..

- ENABLE_IF and co
- DECL_AND_RETURN
gf :[] is now the only  access to data

- Rational :
    () is always const, except for the mesh point case
to be able to write
g(w) = g(w)/2

    [] is the access to data, with mesh_pt and mesh_t::index_t

- remove () for blocks
introduced view_proxy, and simplified gf
gf : introduce data_proxies

- to separate more cleanly the data access
gf : remove assign_from_expression

- moved into the main class.
 -cleaned data_proxy into data_proxy_
gf : try FORTRAN_LAYOUT

- ok, all tests ok
arrays : clean a bit view_proxy

To be generalized to arrays, other slice position,
when needed...