non-zero exit code on failure

Hi Alex,

I hope you're doing well!

I noticed that s3cp commands return zero on failures. 
This pull request fixes that in addition to centralizing the error handing in one place, cf [S3CP#standard_exception_handling](https://github.com/aboisvert/s3cp/pull/11/files#L11R254) in `utils.rb`

`#s3_to_local` is also made more robust in case the source key is not specified by the user, or does not exist in S3.

see you soon,

Alexis