Add deferred --image processing

The general idea and most of the code are based on the following
commits in the chromiumos flashrom tree:

Corresponding to flashrom svn r1482.

8fc0740356ca15d02fb1c65ab43b10844f148c3b
bb9049c66ca55e0dc621dd2c70b5d2cb6e5179bf
Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org>

and the main part:
d0ea9ed71e7f86bb8e8db2ca7c32a96de25343d8
Signed-off-by: David Hendricks <dhendrix@chromium.org>

This implementation does not defer the processing until doit(), but after the
argument parsing loop only (doit() should not contain argument checks).

This allows to specify -i and -l parameters in any order.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: David Hendricks <dhendrix@google.com>
diff --git a/cli_classic.c b/cli_classic.c
index a931de8..3928ded 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -295,14 +295,9 @@
 				cli_classic_abort_usage();
 			break;
 		case 'i':
-			/* FIXME: -l has to be specified before -i. */
 			tempstr = strdup(optarg);
-			if (find_romentry(tempstr) < 0) {
-				fprintf(stderr, "Error: image %s not found in "
-					"layout file or -i specified before "
-					"-l\n", tempstr);
+			if (register_include_arg(tempstr))
 				cli_classic_abort_usage();
-			}
 			break;
 		case 'L':
 			if (++operation_specified > 1) {
@@ -395,6 +390,9 @@
 		cli_classic_abort_usage();
 	}
 
+	if (process_include_args())
+		cli_classic_abort_usage();
+
 	/* FIXME: Print the actions flashrom will take. */
 
 	if (list_supported) {