Added tests to malelf_binary_create_elf_exec64()
adding tests to malelf_binary_add_phdr32()
malelf_binary_add_phdr32() refatored. For now, the function only add the program header, no more PT_PHDR or PT_NULL phdr as first phdr.
Improved the debug feature. For now, the libmalelf support levels of
debug. Added the levels INFO, WARN, ERROR and CRITICAL and can be used
with macros MALELF_DEBUG_*(...), where '*' is one of levels.
This macros add a bit of noise in code because we need verify what level
of debug is enabled by MALELF_DEBUG environment variable.

For Unit Tests I've created others not dirty macros called
MALELF_DEBUG_TEST_*(...), where '*' is again one of the levels available.

The first class of macros can only be used inside a C-scope.
The examples below DON'T works:

if (MALELF_DEBUG_INFO("teste") == 5) {
     printf("debug ok");
}

If you need such condition (for create unit tests for example) use the
MALELF_DEBUG_TEST_* class of macros. Example below works:

if (MALELF_DEBUG_TEST_INFO("teste") == 5) {
    printf("debug ok");
}

In normal circumstances I recommend the use of the macros in clean
scopes like that:

int foo() {
    int a, b, c, d;
    ...

    if (!a) {
        MALELF_DEBUG_ERROR("foo problem");
        return -1;
    }

    MALELF_DEBUG_INFO("Foo executed successfully");
    return 0;
}

The maximum length of the log is MALELF_LOG_BUFFER == (1024) characters
and format generated is:
[LEVEL][DATE][FUNCTION][FILE:LINE][MESSAGE]