Split up "diff_format" into "format" and "line_termination".

This removes the separate "formats" for name and name-with-zero-
termination.

It also removes the difference between HUMAN and MACHINE formats, and
they both become DIFF_FORMAT_RAW, with the difference being just in the
line and inter-filename termination.

It also makes the code easier to understand.
diff --git a/diff.c b/diff.c
index d0962ba..3cb41c5 100644
--- a/diff.c
+++ b/diff.c
@@ -977,16 +977,14 @@
 	diff_debug_queue("resolve-rename-copy done", q);
 }
 
-void diff_flush(int diff_output_style)
+void diff_flush(int diff_output_style, int line_termination)
 {
 	struct diff_queue_struct *q = &diff_queued_diff;
 	int i;
-	int line_termination = '\n';
 	int inter_name_termination = '\t';
 
-	if (diff_output_style == DIFF_FORMAT_MACHINE ||
-	    diff_output_style == DIFF_FORMAT_NAME_Z)
-		line_termination = inter_name_termination = 0;
+	if (!line_termination)
+		inter_name_termination = 0;
 
 	for (i = 0; i < q->nr; i++) {
 		struct diff_filepair *p = q->queue[i];
@@ -999,13 +997,11 @@
 		case DIFF_FORMAT_PATCH:
 			diff_flush_patch(p);
 			break;
-		case DIFF_FORMAT_HUMAN:
-		case DIFF_FORMAT_MACHINE:
+		case DIFF_FORMAT_RAW:
 			diff_flush_raw(p, line_termination,
 				       inter_name_termination);
 			break;
 		case DIFF_FORMAT_NAME:
-		case DIFF_FORMAT_NAME_Z:
 			diff_flush_name(p, line_termination);
 			break;
 		}