Add cross platform getch