Also three strings are marked untranslatable since they never
appear in the user interface and 'Unhandled settings value'
is reworded to 'Invalid configuration value'.
This resolves various indirections, and since we are always
using the action anyway, we finally move all logic to one
place. There should be room for optimizations now.
Incidentally this also keeps the completion intact if
the entry needs to be recreated.
KatzeNet won't attempt to load icons that are not
cached unless the caller provides an icon callback.
For the moment, this means much less loading
for items that are not actually visible, but for
visiting pages or looking at bookmark menus.
intltool automatically embeds comments in the po template
if they are directly before a translatable string. From
now on we will try to avoid leaving accidental comments
and instead put descriptive comments for translators
before strings, starting with 'i18n'.
For the moment, a define in the code decides whether items
are sorted based on when they were added or how often
a page was visited. The 'visits' property and respective
database column is unused (we keep it for compatibility).
It turns out it's enough to store that information in
the tree model.
The visit based sorting is not enabled because it is
simply delaying startup incredibly. It will have to be
decided whether to introduce a preference, or always use
a visited based sorting once the startup delay is fixed.
History items are also deleted from the tree model now
if they are too old, according to the preference.
Some refactoring in KatzeArrayAction and the addition
of a function to create arbitrary bookmark tool items
allows us to easily revamp the bookmarkbar so that
it finally reflectls changes to the bookmarks,
including adding and removing items.