Check for NoDisplay flag for dirs in libmenu-cache when got cache v.1.1.

v.1.2 already has it checked but v.1.1 needs that check because
it might be flagged to show hidden directories so generator ignored it.
Correctly test for TryExec, the g_find_program_in_path() should be used.
Make menu_cache_app_get_working_dir() actually work.

That API was there but it was never used because cache didn't contain the data.
Add new API menu_cache_app_get_categories() to access list of categories.