Make GetEchoString and GetEchoNumber less broken.

Update help text and syntax of GetEchoNumber to match actual behaviour.
Allow its textColor and bgColor to be optional, just as in
GetEchoString.

GetEchoString: Do not clear framebuffer after each typed character,
that's just weird!
Also, if a non-empty bgColor is specified, make sure it is applied
properly.
Improve backspace handling, so a backspace properly erases the typed
text string visually, despite the rest of the framebuffer staying
intact.

This is much more reasonable behaviour for interactive text input with
visual feedback.

Hopefully it doesn't break code outside, due to no longer clearing the
framebuffer after text input, ie., after ENTER confirms end of text
input.