Further memfile optimization

Use macros in non-debug builds for trivial accessor functions, static inline
functions otherwise. The static inline functions are always defined should they
be needed for anything...
Add tool to recode GRF files

This tool reads a GRF file a writes it out again, but first decodes and uncompresses
all sprites and then encodes and compresses them. The GRF file might be requested
to be saved into a different GRF container version (if possible), or with different
(experimental) compression and encoding options applied.

Another use of this tool is to test the GRF/sprite functions... :-)
Support binary includes in GRF container version 1
Handle recolor sprites

Recolor sprites reside in the data section, under the cloak of an Action0.
Fix: any sprite with uncompressed size > 65565 requires GRF container version 2
Merge sprite size fix
grfrecode: fix return value in case of failing to load the GRF file

If the file load failed for some reason, the program would happily return
success in the exit value...
Merge return value fix
Const-ness fixes in list functions

Add const iterator and necessary const versions of accessor and traversal functions.
Rename sprite types and split external ones

Some sprite types are renamed to better names, and external reference type
is split by type of referenced object.
Fix OpenWatcom makefiles

The makefile in the tools/ directory hardcoded the object file extension,
and didn't take into account the executable extension.
Using special files

Opening or creating a special file with the name "-" will open the standard
input or standard output, respectively. No buffering is done on the standard
streams.
Fix typo in comment
Fix: handle colormaps in version 0 GRF files
Merge recolor sprite (colormap) handling fix
Always set the grfversion field of a sprite
Fix: forgot about headers...

If compiling with a standard C89 compiler, the necessary headers weren't
included for the static inline functions...
Merge headers fix
Add functions for writing .nfo files

Info versions 4-7,32 are supported, with options to turn off specific features.
If the minimum required Info version is not taken into consideration, info_write()
will happily write an .nfo file incompatible with the version it states to be
compatible with. However, grfcodec does the same when asking for no extensions
and feeding it a NewGRF file with alternate sprites, for example...

The string-mode support in pseudosprites could have another look on it, especially
support for UTF-8 sequences is needed. In some corner cases it might produce an
empty string.