Try to simplify the descriptors function by factorizing the code.
Now, at user level CHAMELEON_Desc_Create allocates the descriptor and initialize it. At chameleon library level, chameleon_desc_init does all the initialization, but no allocation of the descriptor. If mat is equal to:
- CHAMELEON_MAT_ALLOC_GLOBAL (NULL), the matrix is allocated as before,
- CHAMELEON_MAT_ALLOC_TILE, (-1) the matrix will be allocated by tile. Not supported yet, but will come with next PR
- CHAMELEON_MAT_OOC (-2), the matrix is declared as out-of-core and may overpass the memory of the system.