Add flashmap (fmap) support to Flashrom

This adds flashmap parsing to Flashrom. If an fmap data structure is found, entries will be added to flashrom's internal rom layout.

BUG=chromium-os:115
TEST=Tested on Alex

Testing methodology is similar to what was used in the -i argument patch (git hash d0ea9e), except now fmap data was present in the original bios image:
- Partial write test (automated script)

- Manual partial reads test by reading 4K chunks from ROM and comparing against original BIOS image file and also inspecting the chip-sized file.

- Ensure final chip-size image is generated properly by omitting :file from one of the -i arguments.

- Full read if no -i options are used when fmap is present

- Entire chip written if no -i option is specified and fmap is present. Same holds true if a layout file is specified by no regions are included. A command like "flashrom -w bios.bin" or "flashrom -l layout.txt -w bios.bin" will consistently write the full image to ROM.

- Specifying a non-existent region caused flashrom to fail (expected result).

TODO: Automate all of the above.

Review URL: http://codereview.chromium.org/6025013
diff --git a/flash.h b/flash.h
index 6bfc2c0..9a113d3 100644
--- a/flash.h
+++ b/flash.h
@@ -252,6 +252,7 @@
 
 /* layout.c */
 int read_romlayout(char *name);
+int add_fmap_entries(struct flashchip *flash);
 int register_include_arg(char *name);
 int process_include_args(void);
 int handle_romentries(struct flashchip *flash, uint8_t *oldcontents, uint8_t *newcontents);