RFC: Use real terminal size for show (fix #7295 and #4513)

Replaces `tty_rows()`/`tty_cols()` with `tty_size()`, which (through Terminals) calls `uv_tty_get_winsize()` to get the terminal size.

The reason for the change is that `uv_tty_get_winsize()` gives both the rows and columns, so if we wanted to keep `tty_rows()`/`tty_cols()`, we'd have to call `uv_tty_get_winsize()` once for each, even though they are nearly always used together. AFAIK none of the methods whose signatures I've changed were ever exported, but this could still break some packages.

I am assuming that calling `uv_tty_get_winsize()` is not expensive enough that it's worth registering a SIGWINCH handler and only updating the numbers on window resize, as readline used to do. My Linux system can do >10^6 calls to `tty_size()` per second, which seems plenty fast to me. Given how cheap the call is, it may not even be worth replacing `tty_rows()`/`tty_cols()`. Of course other platforms may be different.
Given the checks above, the `try` shouldn't really be necessary. I put it there because I don't know the failure conditions for `ioctl(..., TIOCGWINSZ, ...)` (or `GetConsoleScreenBufferInfo` on Windows) and if these calls could fail on an otherwise working system, it would be better to return `(80, 25)` than to break `show`. If that scenario is not possible, I will remove the `try`. Alternatively I could rethrow anything that's not a `UVError`.