[SDL Widget, Button] Make 'getClipping()' virtual. Move Button's clipping correction (for stateful appearance) to the 'getClipping()' method.

There was an issue with buttons being invisible when shown after being hidden. This was caused by the clipping thing adjusting to the 'hidden' widget state on an event, but not having another event to fix this when they became visible.