Adding setDefaults(), ancestorCurrencyDepth option, fixing (string) NULL conversion

ListRenderer: calling parent::__construct(), splitting constructor and
introducing setDefaults() for easier inheritance, adding
ancestorCurrencyDepth option to mark active/current also ancestors of
not displayed menuitems (so don't stop propagation), fixing return
(string) null which is undefined, setting depth option bottom to 0