Fix missing EOL at end of files (catched by clang)
server.c: fix implicit declaration of signal()

The signal.h header was missing.
types.c: fix implicit declaration of strdup()

strdup() is not ISO C but it is present pretty much everywhere.
It is defined in POSIX since Issue 4 v2 as an X/OPEN UNIX extension.

To bypass -pedantic-errors, add a #define at the top of types.c
to request the GNU libc to allow us to use strdup().

In a way this lets types.c self-document that it is not portable
beyond POSIX systems, which is good.

The proper fix, if portability is desired outside of POSIX systems,
is to drop the use of strdup().

See history of this function:
 - http://pubs.opengroup.org/onlinepubs/9699919799/functions/strdup.html

See proper declaration of the function:
 - http://linux.die.net/man/3/strdup
main.c: fix implicit declaration of asprintf()

The asprintf() function is a GNU extension. Added a header to request
GNU extensions for main.c. This will help indicate developers that
portability is constrained to GNU systems that use GNU libc.

The proper fix, to let main.c compile on non-GNU systems is to drop
the use of asprintf().

Reference:
- http://linux.die.net/man/3/asprintf
utils.c: fix implicit declaration of strcasestr()

The strcasestr() function is a GNU extension. Added a header to request
GNU extensions for main.c. This will help indicate developers that
portability is constrained to GNU systems that use GNU libc.

The proper fix, to let main.c compile on non-GNU systems is to drop
the use of strcasestr().

Reference:
- http://linux.die.net/man/3/strcasestr