Backport GitObjectManager class and Log Observer interfaces

(manual backport part of a lot of commits... as single feature)

Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Rename Log class to DebugLog, but keep compat wrapper

- and add missing DebugLog::Clear() method

GitPHP_Log extends GitPHP_DebugLog as a temporary migration solution
Move listdir to utility class

xiphux commit 5bc1b74dfe0c00e031b97e3321288a46022493d5

but keep the directory symlink support added in my gitphp variant
Backport new object cache interface

Change: set mode to 0775 instead of 0777
Add missing functions to pass tests without fatal errors
Add unit tests from xiphux/master
tests: disable custom exception check until implementation
commit log was again reversed (double reverse to check)

My forked version show this directly in shortlog lists, and was
(re)introduced by commit 6828ff970f4cd227a2eb9b0096989328344e8a31

But maybe i've fixed this elsewhere, and this one reverses them twice
to check later...
Clean all useless phpdoc attributes

to reduce the diff with xiphux... one big thing made... lately

Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>