fixed command line parsing on OSX #926

On osx istreams you need to call istream::good() rather than relying on
operator bool, because only good() checks the eofbit, and while on linux
reading past the eofbit just gets you the empty string, on osx you
actually get the last line repeated.

Also fixed the test assumption that we'd get an empty line after the end
of the config, which was a hack around the incorrect code.

fixes #926