Put self-includes first in source files
Give test headers a better name

test.h suggests that it's a header for the test.c file, while in fact it
just a place to put defines of common macros.
Add comment to endif directive of header guards

Basically, replace all

    #ifndef __VERSION_H__
    #define __VERSION_H__
    #endif

with

    #ifndef __VERSION_H__
    #define __VERSION_H__
    #endif /* __VERSION_H__ */
Fix header guard define names

Symbols starting with two underscores are reserved by the standard for
compiler and standard library.  So use the following scheme for defines:
 - prefix VIFM__ for sources and VIFM__TESTS__ for test headers
 - relative path to a source file with / replaced by __ and . by _
 - trailing __ suffix
Request GNU extensions using configure script

Instead of doing it manually.
Merge branch 'better-includes'