Add capability to react to hover events to the button widget

In the past people wanted to make use of hover-events to trigger certain actions (like popups or drop down menus). However there was no widget available which would enable them to do so. Since I recently created a hover widget which was based off the button widget, I propose to just add the capability of handling hover events to the standard button widget. (This seems to have been intended some time ago since there was a 'hover' parameter already present, albeit without function)

I think this is a good start to integrate said functionality, however calling the new parameter 'action' might cause confusion (I am not sure), so we might need another name for it (maybe hover=true/false).
There are a few extraneous blank lines here. The core avoids blank lines within function definitions unless they aid comprehension of the code.