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.

Signed-off-by: Martin O. Pollard <mp15@sanger.ac.uk>