Touch up README file
Unify Makefile

The source now identifies the operating system with the help of
macros defined by GCC.

The macros are documented here:
http://sourceforge.net/p/predef/wiki/OperatingSystems/

This patch was inspired by a suggestion from Max Justicz.
Rewrite Makefile

This rewrite of the Makefile takes advantage of the fact that
the Makefile has been unified for all supported operating systems
to properly express source-file dependencies.
General code review

- Comply with C99 standard.
- Adopt compiling flag -Wextra.
- Adopt compiling flag -Wpedantic.
- Drop use of PATH_MAX constant.