50 check-ins occurring around 3e73250966f195e8.

Add new channel plugin for filtermusic.net,
which works both per website extraction and from XML map traversal.
(Again, the HTML→regex grepping seems more reliable.)
check-in: 4b395e5d70 user: mario tags: trunk

Move `state.json` and .current restoration into GenericChannel.gui().
Current category is reselected by TreeView traversal on instantion now.
Previous state now load through config.state() for channels/__init__,
not in main/init_app_state anymore (just row:expand / winsizes now).
Disable .currentcat() overwriting, redundant now in display_categories().
Still need to avoid second .select_current() call in first_show().
check-in: ffaf262c43 user: mario tags: trunk

Draw gtk_cat columns on initialiation in .gui() call.
Use more literal uikit.do() invocations without lambda: wrapping.
Let display_categories only run in uikit.do/idle,
whereas .load() is run directly from there now.
check-in: f1a357a60d user: mario tags: trunk