Removed ".empty" files for non-empty directories

Git doesn't track directories, just files, so dummy files are necessary
to preserve empty directories. These directories were not empty though.
Removing the dummy files avoids GMenu2X scanning them on startup.
Disable delete context menu option for undeletable link files

Before this change, it was possible to delete for example a link that
is stored on a read-only file system and it would disappear after
deletion but reappear as soon as the menu restarts.
Pass C++ string to LinkApp constructor

All callers already had C++ strings and LinkApp wants a C++ string,
but because of the argument type the strings had to be converted.
Be resilient against zero or multiple "Categories" OPK metadata keys

For zero keys, the OPK file itself would be parsed as a settings file.
For multiple keys, all first categories would be appended to the path,
leading to a much too deep directory.
Have Menu::readLinks() sort using orderLinks()

Previously, it sorted before Link instances were created. Using
readLinks() ensures consistency and it might be more efficient if
a significant number of link files are rejected.

Also modernized the body of orderLinks() and removed unnecessary
special case for 1-link sections.
Create LinkApp objects in Menu::readLinksOfSection()

This avoids having to store the paths in an intermediate vector. Also
it allows us to do the writability check once per directory instead of
once per file.