Enable fetching categories from visualization.

Often tab `update` events are not triggered (eg. reopening tabs from
previous session?) and so we don't fetch categories for them. This
provides a button to enable the user to fetch categories for these tabs
from the visualization.

Some architectural changes were required to accomplish this, mainly
setting up a chain of callback accepting functions, starting from `getCategory()`.