bee-list: fix bee list -a --display-pathname

this fixes a bug introduced in 3a79b19bed67b08f1e3b2e1abcb30ef1c84ca4cd
due to unexpected behavior in beesort.

since beesort is unusable just use the installed (GNU)
"sort" again to fix this issue.

just revert this commit when beesort is fixed and behaves like expected.
bee-download: git: use time of last git commit when no tag is found

when cloning git repositories and creating packages use the unix timestamp
of the last commit when creating version information in repositories that
do not have tags.

this makes it possible to better sort those archives since just adding
the commit-sha1 doesn't help bee sorting those versions.

the commit timestamp will be added as pkgextraversion prefixed with t
(e.g. PKGEXTRAVERION=_t1234567_deadbeef). the commit-sha1 will still be
added to make is possible to identify the commit the archive was built from.

pkgversion will still be 0.
bee_tree: add new function print(key,data) to tree structure
bee_tree: add flags variable to tree structure and bee_tree_set/unset_flags(..) functions
bee_tree: add support for uniqueness of tree nodes

to enable dupe prevention set one of the flags below:

BEE_TREE_FLAG_UNIQUE - unique keys
   do not insert dupes

BEE_TREE_FLAG_UNIQUE_DATA - unique keys and data
   do not insert dupes - if key is already in tree
   also check data. tree->compare_data() must be set.
   data comparison is only used to prevent dupes and is
   not used to insert sorted or to find nodes

bee_tree_insert(..) will return NULL if memory allocation fails or if the
element is already in the tree.

If memory allocation fails errno will be set to ENOMEM.

If the element is already in the tree, errno will be set to EEXIST and the generated key
will be freed using the free_key() tree-functions (if set).
beesort: use tree->print instead of tree->print_key
beesort: let bee_tree handle dupes
bee_tree: if key generation in bee_tree_insert fails, return NULL

make sure to set errno to something useful in generate_key.
Do not use EEXIST since this is reserved for dupe prevention.
bee_tree: fix prototype of generate_key
beesort: use bee_tree as intended (fixes several bugs)
beesort: allow --uniq to be used more then once

--uniq (used once):
  output only the first of equal lines

--uniq --uniq (used at least twice)
  output each calculated bee-package-version only once
  (no matter how the line looks like, if two lines result in the
   same beeversioning only the first is printed)
Revert "bee-list: fix bee list -a --display-pathname"

This reverts commit 53349ce237b1639af037855c1e39d4043e8c81f2.

beesort is fixed now 8)
Merge branch 'beesort-fix'

* beesort-fix:
  Revert "bee-list: fix bee list -a --display-pathname"
  beesort: allow --uniq to be used more then once
  beesort: use bee_tree as intended (fixes several bugs)
  bee_tree: fix prototype of generate_key
  bee_tree: if key generation in bee_tree_insert fails, return NULL
  beesort: let bee_tree handle dupes
  beesort: use tree->print instead of tree->print_key
  bee_tree: add support for uniqueness of tree nodes
  bee_tree: add flags variable to tree structure and bee_tree_set/unset_flags(..) functions
  bee_tree: add new function print(key,data) to tree structure
release: bumped version to 1.0_rc28
Makefile: added new Makefile target 'compat' and first compatibility patches

For now 'compat' is not integrated into the standard 'make' build process,
so you have to call it separately via 'make compat'.

The first compatibility patches substitute two bash expression that were
introduced in bash4, so that bee is compatible to systems with bash prior
version 4.
release: bumped version to 1.0_rc29
bee-dep: add #define _GNU_SOURCE for use of strndup