Fixes #5 Changed handling of no new line edge case, interpreted as "Bad message" as per newsgroup post.

Joel Addison:

My response about the first char is referring the fact that fgetc can
let you get chars while fgets would sit waiting. If you are using fgets
and it returns NULL, then you know you have EOF from the hub, so you
interpret that as it having exited early (early loss of hub). If you are
using fgetc (which is fine to do), then you only check if the very first
call of fgetc returned EOF to then say the hub exited early.

Signed-off-by: timdrew <tim@timdrew.com.au>