ActionTextField: de-duplicate action icon code
This was halfway done, with the MouseArea part being a re-usable component. Let's go the rest of the way and give the whole icon the same treatment. Less code, fewer bugs, no need to copy and paste things around.