Improve auto-update UI

As with #665, we've been running a heavily-modified `script/boxen` script for months at GitHub, which I've neglected to extract until now.

The improved UI, while not perfect, is a whole lot less cryptic when it fails. It's also much more informative about times when it will skip pulling updates: e.g. it tells you you're on a branch, and the process for finishing up your work on that branch and getting back to "normal".