refactored ActionsGUI

changed name to ActionIconsGUI and put the Action logic in the
ActionInvoker
also added an virtual IsPerformable method to the Action class and
changed the return type of Perform to void