make Logger cache a LoggerRepositoryPtr instead of a "blind" pointer

Details

Description

Hi

The following patch (the biggest from the series) changes the codes so that Logger caches a LoggerRepositoryPtr instead of a LoggerRepository* otherwise the cached pointer may get "delete"ed before it's last use (as proved by valgrind and SIGSEGV). This patch fixes the first crash I got with log4cxx when trying to log from a destructor of a static object.