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.

Access to results->routes and results->abundances are eased by the use of to idx function wich compute the right idx from each original idx.

There is also the correction of suffix bug in this pull request