Some pager-related cleanups.

I think this fixes the issue you were seeing Mike.  Also, I found a bug/typo when catching multiple errors and I added '-K' to the list of default less arguments, otherwise less will ignore the Ctrl-C.  Finally, I also added the routing of stderr through the pager, taking a page from Mercurial's book.

FWIW, I basically nabbed the new pager setup bits from Mercurial, as I thought it made a lot of sense and I liked how the cleanup was arranged.  I had something similar, but without the restoring of stdout and stderr, and I didn't like the result as much.