help and version messages now go to stdout and return 0

They were handled by the general exception handler which printed to
stderr and returned 1.

closes #4