Only realloc if neccessary
Only realloc if neccessary

When reading the source files in Allplots.c it doesn't actually save
data every time through the loop (if the gene would be outside the
current row).

Previously it would still call realloc+malloc everytime though. Now it
keeps track of whether or not the last iteration through the loop saved
the gene information to the last spot in the array and only expands the
array if necessary; if the `expand` var is set.

This makes it significantly faster as it is doing a lot less memory
manipulation, leaks less garbage (lots of mallocs whose pointer was
being dropped on the next iteration), and segfaults less often.

re #946 (1)

victor-lin/npact,NProfileAnalysisComputationalTool/npact,NProfileAnalysisComputationalTool/npact,victor-lin/npact,NProfileAnalysisComputationalTool/npact,victor-lin/npact,NProfileAnalysisComputationalTool/npact,NProfileAnalysisComputationalTool/npact,victor-lin/npact,victor-lin/npact