Build: respect $CC, $AR, $RM, $CFLAGS, $LDFLAGS

If the user has set a value for CC, AR, or RM, use that value.  GNU make
provides good defaults for all of these.

If the user has set CFLAGS, use that instead of -O2, but preserve the
other build options.

Append the local LDFLAGS to any value from the user.
Build: respect COMPILE.c if set

The default definition from GNU make is more comprehensive.  Switch to
that, and allow an environmental override.
Build: remove redundant -rpath

LDSHFLAGS specifies -rpath, but is only used when LDFLAGS are specified,
and LDFLAGS also set the same -rpath.  Remove the redundant definition
in LDSHFLAGS.
Build: make quiet compilation optional

Switch from always hiding the executed command to hide it only by
default, but let the user request that the commands be shown.  For now,
follow the convention that setting $V requests a verbose compilation.
Mark library functions as "C" linkage

The documentation disclaims support for building with a C++ compiler, so
it is reasonable to assume that the library will be built with a plain C
compiler, so the functions will all have plain C linkage.  By default, a
C++ application that wished to use libiniparser would need to wrap the
inclusion of libiniparser headers in 'extern "C" { ... }' to reflect the
C linkage of libiniparser.  Instead, place that marker directly in the
libiniparser headers, so that client applications do not need to care.
This has no effect on normal compilation of libiniparser, since the new
markers are inside a '#ifdef __cplusplus' guard, and straight C
compilers do not define __cplusplus.
Build: move $LDFLAGS before $OBJS

Move $LDFLAGS to appear earlier, in case the user specifies a
position-sensitive flag.
use size_t for sizes instead of int
made xstrdup a bit faster (theoretically)
removed malloc casts(!), changed sizeof usages

using "foo = malloc(sizeof *foo)" is more change-friendly than
"foo = malloc(sizeof (type*)"
Prevent compiler warning when compiling for 64 bit
Better solution to fix 64 bit compiler warnings

Use the size_t data type where appropriate instead of casting.
Merge pull request #14 from kevin-dot-pyle/master

Build system improvements
Merge pull request #17 from Foxtacles/upstream

Contributions by rmartinjak
Merge pull request #28 from ctourner/topic/compiler_warnings_64bit

Prevent compiler warning when compiling for 64 bit
Improve readability on a ternary operation
Replace mem_double by realloc and keep the dictionary intact in case of failed resizing attempt
 - Correct the static lib generation rule
 - Put a dependancy on the 'make check' rule to build the lib if needed
Move test directory into example
 - Fix segfault in dictionary_hash with NULL given argument
 - Create dictionary_grow function to prevent dictionary from beeing corrupted during unsuccessful growing attempt
 - Remove useless memset in strlwc
 - Add in unitary tests using CuTest lightweight framework
Fix iniexemple segfault if example.ini cannot be created