Make the program much quicker.

Seems that modifying a member with an in-place list section a lot of
times kills the performance. Instead we simply keep the whole file in
memory and keep track of how much of the string we have already taken.
Merge branch 'performance'