Dynamic allocation of data structures

All array are  dynamically allocated
read_* take care themselves of the call to the alloc_* function, leaving their caller the responsabillity of the call to free_*

res_t structure however need to be allocated before the solve call (and any access to it anyway ) using alloc_results function.
of course a call to free_results in necessary.

There is also the correction of suffix bug in this pull request