print stack trace after each syscall

This patch prints the stack trace of the traced process after
each system call when using -k flag. It uses libunwind to
unwind the stack and to obtain the function name pointed by
the IP.

Tested on Ubuntu 12.04 64 with the distribution version of
libunwind (0.99-0.3ubuntu1) and on CentOS 6.3 with libunwind
form the source code. On Ubuntu you need the libunwind and
libunwind-dev package to compile the stack trace feature in
the code.

Some of this code was originally taken from strace-plus of
Philip J. Guo.

 v2:
   fixed several identation issues
   removed a strlen in alloc_mmap_cache (Denys)
   reload mmap_cache after execv
   fixed a bug in libunwind_backtrace binary search (Masatake)
   removed several useless and misleading comments
   removed several ifdef
   check return value of _UPT_create
   use die_out_of_memory after Xalloc
   use exiting instead of !entering
created a new separate file unwind
removed include from defs.h
use unwind-generic instead of unwind-$arch
disable-stacktrace can now be used to disable stacktracing
properly handle the --with-libunwind flag parameter
now with the proper LDFLAGS CPPFLAGS
remove libunwind_as declaration from defs.h
fix tabs
call delete_mmap_cache on when -k is given
more identation fixes
more identation fixes