catch KeyboardInterrupt and exit non-zero

- previously sigint = ugly traceback for an otherwise normal
  event