Rename nvm_image module to image_raw.
Factor out symbol copying functions.

Add functions image_raw_merge_mem() and image_raw_merge_filedes() to
be reused by other image formats.  Change type of internal source
configuration to accept void pointers.  Make the new functions
publicly available through header file.
Clear up function documentation in image_raw module.

Explicitly state that raw binary images are concerned.
Add first draft of image_ihex module.

Introduces a dependency on libcintelhex.

New function image_ihex_merge_file() for reading Intel Hex is
implemented, writing output images in unimplemented so far.
Count symbols successfully read by image_ihex_merge_file().

Adjust API to image_raw_merge_file().
Adjust return values of image_raw_merge_file().

Fatal errors like invalid arguments or failure to access file are
reported as negative error codes.  Empty files or no symbols found
result in simply returning zero.
Adjust return values of image_ihex_merge_file().

Fatal errors like invalid arguments or failure to access file are
reported as negative error codes.  Empty file, parsing errors or no
symbols found result in simply returning zero.
Add new module to handle different binary image formats.

New function image_merge_file() handles switching between input
formats with auto-detection.  image_write_file() switches output
between RawBinary and IntelHex, but the latter is not yet implemented.
Add option handling for different binary image formats.

New options --input-format (-I) and --output-format (-O) are parsed
and stored in new enumeration members of the tool_config structure.
Switch to new image_formats module in process_maps().

Default output format is RawBinary for now.
Call ihex_rs_free() when finished with image file.
Disable OPT_OUT_FORMAT.

Writing any other format than raw binary is not yet implemented, so
comment out the option for now.
Fix output format option parsing.

The option parser code modified the input format instead of output.
Merge branch 'intel-hex' into develop
Add submodule libcintelhex at the extended-api branch.

This submodule currently points to the GitHub/acolomb fork with
additional proposed API functions.  Once these new parts are merged
upstream, it can be switched to the original GitHub/martin-helmich
repository.
Add toolchain flags to locate libcintelhex submodule.

Building the submodule is still required manually, this integration
just makes sure the compiler finds the correct build.
Clean up module order.

Add include_order.txt documenting the default hierarchic order of
header includes.  Clean up ordering in .c files, remove unnecessary
includes from .h file and add missing include directives for modules'
own headers.

Also correct missing const qualifier in parse_overrides() prototype.
Add inttypes.h to standard include order list.
Use experimental ihex_byte_copy() API.
Update to experimental libcintelhex API.

Use new ihex_rs_get_address_range() function and adapt to
ihex_byte_copy() API change.  Memory is still allocated for the whole
blob, disregarding the file's start address offset.  This is necessary
because image_raw_merge_mem() needs a complete image.