Reduce use of abort, remove assert(fp), pass one string to fprintf not multicall

Reduce use of abort to situations where you might actually want to debug.
Remove assert(fp)'s and replace with proper error messages.
Remove a few instances where fprintf is called multiple times rather than just
passing one string to it.
Fix one whitespace error.
Use `print_error_errno()` to put an actual error message here, including the filename and strerror -- compare sam_view.c.  And similarly in bamshuf.c.