Changed cache referencing completely.
Changed cache referencing completely.

Scheme when each client was put into list and list elements have reference
on client is error-prone at the very least.
This is changed by commit into linear one: the cache is kept while there
are clients using it and is freed after some timeout when nobody uses it.
Each client will remove itself from all caches after disconnect therefore
no back-referencing is required.
Timeout is set to 600 seconds and when all clients are disconnected then
the daemon will shutdown (therefore not hang in memory infinitely).

lxde/menu-cache,lxde/menu-cache