update how action class names are generated

This moves the responsibility for generating the full class name for an
action to the widget which uses the action, since not all widgets
require the same type of class name.
update the ownership relationship for ActionGroup and Action

An action must now be explicitly added to an ActionGroup via the
addAction method. This allows the actions for a group to be retrieved,
and simplifies the internal implementation.