kronecker function and overload for matsubara_freq

Used in solver codes.
arrays: change operator() && for const_view

Changed operator()(int, int...) && for array, and views.

- For const_view and regular type, returns value_type (i.e. a copy).
  NB : does make a copy, not a move. Ok for scalar type. TODO: think for complicated types.
  This allows codes like :
  f(x)(0,0) where f : x-> matrix or const_view
  to be correct in clef expression evaluation.

- For _view : return a value_type &, as before to allow :
    A(....)(0,0) = rhs;
  It is not possible to detect dangling refs in that case at compile time.
  Added a security in TRIQS_ARRAYS_DEBUG mode to detect a dangling ref at run time,
  i.e. the case where the view is "unique" (ref count ==1).
  This would be a quite bad design anyway ...

- also :

 - clean operator[] for vector (old workaround for old gcc...)
 - add IsView flag in ISP impl class, for the impl. of operator() &&
gf: imfreq : fix evaluator for n<0

- in positive only case, the evaluator for n<0
was wrong : must shift the integer by -1 for the fermions.
gf : imfreq : clean evaluator on int

- evaluator on int was not using the same algorithm
as matsubara_freq, which can be surprising...
Added draft of doc
Added ising2d test for statistics...
Fixing mistake: was taking next-nearest-neighbors...
Further work on ising2d test. Added output.
Statistical tools documentation, c'ed.
Added constructor of observable on binned_series
Made autocorrtime calculation from binning faster.

Bin size is doubled at each step to converge faster and reuse previous binned series.