Control: prevent controls drawing outside their bounds

fixes at least TextEdits leaving artifacts when drawing outside their bounds and reduces code duplication from other controls.