start cleaning Cache classes… there is still a lot of work to do!

en règle générale:

- les méthodes publiques lockent

- les méthodes privées ne lockent pas

- n'utiliser mutable que pour les choses vraiment mutables (les mutex
par exemple).
 mutable signifie: peut être modifié sans que ça change quoi que ce
soit au contenu (data) de la classe
 -> ça ne sert à RIEN de mettre tous les membres mutables et toutes les
méthodes const!!!!!!

- même les toutes petites classes doivent être protégées (KeyHelper),
sauf si ce sont des sous classes privées que tu gères bien. Pour
l'instant je l'ai protégée, est-ce nécessaire? Quid des autres classes
(CacheEntryHelper par exemple) ?
 -> peux-tu faire le tour des classes et dire explicitement
(COMMENTAIRES) pourquoi telle classe n'a pas besoin d'être protégée?
c'est *tres* *tres* important

- une classe MT-safe ne peut pas avoir de friend: faire les méthodes
publiques qui s'occupent de locker delocker plutot ue d'acceder aux
methodes privées. Il vaut mieux une méthode publique en trop qu'un
acces ouvert aux méthodes privées (qui n'assurent pas le MT-dsafety)