Add exit return codes for all primary commands

Commands now return some form of return code, which then shows up as
the s3cmd process exit code.  If an S3Error is raised, we return
EX_SOFTWARE and hope the point where it was raised also output enough
error() messaging to understand what failed.