Control: handle invalidating windows when a control has no background

When a control becomes “dirty”, but has no background we need to invalidate the window because the window contents are the background
TextArea: remove redundant calls

core->RedrawAll() -> Invalidate() -> MarkDirty()
Scrollbar: we no longer need to call core->RedrawAll() (that i know of)

Control will invalidate the window already if it is needed, and I cant think of why we would need to redraw all windows.
TextArea: remove window redraw hack for scrolling textareas

still a bit hacky, but meh
TextEdit: attempt to bix incorrect drawing

text was being drawn way below its background (see BG2 area map). we still have artifact issues because we dont clip the text to the background.