Only move cursor if necessary
Save tty file descriptor until screen_restore
Tweak variable names
Save screen size during initialization
Check bounds
Use different code for clearing screen

Clears screen, sets cursor position to top left, and resets current color
Dynamically allocate color map