Format columns based on terminal size

This calls out to `ioctl()` with the `TIOCGWINSZ` command, which
drops some window size parameters in a pointed-to structure. I then
use this info to determine the number of columns to display.

Help came from the following resources:

- https://code.google.com/p/go/source/browse/ssh/terminal/util.go?repo=crypto#75 and
- http://stackoverflow.com/questions/16569433/get-terminal-size-in-go