makepkg: Protect all makepkg call as a function in a subshell.
makepkg: make some ident homework, reorganisation of code.
makepkg: No need to subshell in makepkg_env, call makepkg env instead of makepkg_env.
makepkg: Make strip_pkg calls part of create_pkg, more logical and avoid to iterate over the subpkgs list 2 times.
makepkg: Add pacman(-g2) command that wraps and fix environment before calling pacman-g2.
makepkg: Replace '$PACMAN $PACMAN_OPTS' with 'makepkg pacman-g2' invocations.
makepkg: Installing requires --sudo, giving us the opportunity to vectorise code.

Even if we check permissions before attempting an install, any install
requires --sudo option.
makepkg: Removing package resuires --sudo option.
makepkg: Vectorise package removal code.
makepkg: Add shemu_realpath, a function that tries to emulate realpath.
makepkg: Use shemu_realpath.
* add -a (all) option to -T, it will display all required deps for a given list of packages
libpacman: Remove FList::last, it is an artefact of the current list implemantation and we can get it with f_ptrlist_last (which is pretty slow with current implementation).
libpacman: Make flist.c code a little bit more generic (less implementation dependant).
libpacman: Add f_list_append, f_list_append_unique, f_list_end(_const), f_list_rend(_const) and alias f_list_add to f_list_append.
lipacman: Use f_list_end_const in flist.c.
libpacman: Add f_list_find_const, fix constant correctness.
libpacman: Prepare more to the new list implementation.
pacman: Make FptrList more compliant with new FList implementation.
pacman-g2: Make list_t be a FPtrList.