Fix odd line splitting

A really long line sometimes get split in an odd fashion, eg:

```
#1 -- half of the long line
#2 -- next characters
#3 -- rest of the long line
```

here, the long line gets split into 3 parts with the 2nd part strangely comprising of 2 characters ... when in fact 2 parts would be sufficient.

upon investigation, i discovered that this was caused by the way we use the `ReadLine` function, which is a low-level function and the Go doc rightly recommends using `ReadString('\n')` which is what this pull request does.