Simplyfing the dependencies between header files

To reduce the module dependency graph and complexity, header files
should keep the inclusion of another header files to the required ones.

This patch reduces dependencies between header files to the bare bones,
and documents the remain ones.
Clean and polite includes in each source file

Add a header area in the beginning of every source file, with the same
format, grouping all the includes of the file.

Note: some system-dependent #includes (in main.c, fileutil.c, ldsvgui.c,
ldsvguts.c, picedit.c and timer.c) are not grouped yet.
Remove OS/2 code

Remove conditionally-compiled code related to OS/2 (__EMX__).
(It probably doesn't work anyway).
Remove some unused system headers

- Change inclusions of config.h to lcconfig.h
- Remove unused system headers
Clean warning messages

Fixing some strict warnings reported by gcc (-Wunused-but-set-variable
-Wformat or -Wimplicit-function-declaration).

The introduced REMOVE_LATER symbol marks the code to be removed if these
variables don't have any real use in the future.
Expanding .gitignore

New ignored files and directories in .gitignore