desc wrapper generator: small improve, clean

- detect the use module.
- clean the code specific to wrapper generation from clang_parser.
- add support for default arguments for int, double, char.
- TODO : add more complex default arguments
correct previous commit after linux test
cmake: make TRIQS_PATH absolute

- when TRIQS_PATH is given e.g. with ~, make it absolute
  to avoid config. error.
desc generator : minor cleaning

- while porting apps. examples to 1.2
- add build_ipytriqs, etc...
- various details...
python wrapper. No new function if no constructor

- When a type has no python constructor (E.g. parameters)
  do not define the xxx_new function.
- Leads to a better error message when trying to construct
  such an object in python.
- TODO : check there is no issue with serialization ?
Fix #119

- Cleaned of the eigensystems computations (worker is simpler, decision
  at runtime, etc..).
- Fix #119 : When the matrix is in C order, the fortran lapack
  sees in fact its conjugate, so we need to conjugate the eigenvectors at the end.
  NB : not true if the storage order of the matrix is already fortran of course.
Clean the eigenelements tests.

- Clean the output of the test.
- Separate from previous commit to be able to retest previous test
  with same lib code.
Fix #112 and put back g +=/-= matrix for imfreq

- The issue comes from the fact that the default generated
  += and co by the Python API is the one for immutable types, like int.
- Indeed, in python, for an int :
  x=1
  id(x)
  140266967205832
  x+=1
  id(x)
  140266967205808
- For a mutable type, like a gf, it is necessary to
  add explicitly the xxx_inplace_add functions.
- Added :
   - the generation of the inplace_xxx functions
   - a method in class_ in the wrapper generator that
     deduce all += operator from the + operators.
   - this assumes that the +=, ... are defined in C++.
   - The generation of such operators are optional, with option
     with_inplace_operators in the arithmetic flag.
- Also, added the overload g += M and g -= M for
  g : GfImfreq, M a complex matrix.
  Mainly for legacy Python codes.
Fix #122

- the conj_ function was not written properly
  (T is a ref, the trait is_complex was not returning true).
- a simpler version is clearly better !
Fix #122 : correction : forgot inline
doc : install
doc exceptions
Implement mpi lib (1). Array, generic, base, vector

- Implement the basic structure of the mpi lib
  and specialization for arrays, basic types, std::vector
- adapted the array class for the lazy mpi mechanism
- pass tests on arrays :
   - scatter, gather on array<long,2> array<complex,2>, etc...
   - broadcast
- several files for readibility
- the std::vector coded but not tested.
- generic mecanism implemented and tested (mpi_generic test)
- added several tests for the mpi lib.
- TODO : more tests, doc...
fix mpi/vector, added test
added first draft of MPI documentation
mpi for the gf

- done Matsubara freq for testing and rereading.
- TODO: generalize to other meshes.
- draft for multi var gf
[gf] Singularity as an explicit template parameter

- change the underlying data : do not flatten the linear indices of the
  mesh into a single index, keep a higher dim array.
- easier for various places, and necessary for g(nu,nu').
- work on several 2 part. containers.
- add default target (may not be always matrix_valued)
saving draft
[gfs] modif simple
[gfs] Add memory layout option