Add HandleActionFun and use it in Button

This is a real improvement, because now lambda functions can be
specified directly.
Remove component parameter from KeyListener