Jb/638 cache leaf groups

Ich habe einen Spec für `Group#leaf_groups` geschrieben, den gab es noch nicht.
Außerdem habe ich es als Vorteil gesehen, zwei Methoden zu haben, damit der Spec vergleichen kann, zwischen ' cached_leaf_groups'  und `leaf_groups`.

Ansonsten wird der Cache immer gelöscht, Wenn ein Vorgänger oder Nachfahre der Gruppe geändert wird oder angelegt wird oder gelöscht wird.

Der Cache wird nach einer Woche gelöscht.

Alle Verwendungsstellen wurden ersetzt.
Hier wäre es natürlich schöner, wenn der Key aussagen würde, "was drin ist", d.h. `'leaf_group_ids'`. 

Warum hast Du Dich dafür entschieden, nur die Ids zu cachen und nicht die Gruppen selbst?