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)
   check return value of _UPT_create
   use die_out_of_memory after Xalloc
   use exiting instead of !entering
   created a new separate unwind.c file
   removed include from defs.h
   added --with-libunwind to autoconf script
   cleaned up defs.h from several inclusions
unwind: fix symbol_name mem leack and some identations
properly compile code when libunwind is not present
use unsiged int to avoid float division (gcc bug thanks to Vlasenko)
major fixes to autoconf script

fix logic (don't fail on library not found)
change enable_libunwind with with_libunwind variable name
use check instead of maybe
unwind: adjusted several data type to use unsigned
fix for libunwind when using libpthread
use PATH_MAX for buffer which holds DSO path
fix autoconf script
fix minor identation issue