remove useless import of S3.Exceptions

Noted in bug #227
reduce "Process files that was not remote copied" to debug()

noted in bug #276
add s3cmd.spec to .gitignore
add a friendly error message on UnicodeEncodeError exception
report LANG= environment variable on crash

With so many unicode errors happening, at least capture
what LANG is.
handle empty directory on S3 sync remote2local

We have to recognize when it's an empty directory (the filename ends
in a trailing /) and treat it specially.
_download: Exception != OSError

Cut-and-paste context error.  Here we specifically want OSError to
dereference e.errno.  If we get a different type of error, we should
raise that separately until we know how to deal with it.

I did see one example of an S3Error getting raised here, syncing down
a bucket that has versioning enabled but one file deleted.  We have to
first fix this error to debug the next error.
_download: handle S3Error

If we get an S3Error here (i.e. HTTP 404 Not Found), warn and continue
rather than crashing.  This can happen if the file is removed from S3
async to us running, after having retrieved the directory listing from S3.
support multibyte key name on getting object operation.
Merge pull request #92 from ksauzz/support-get-operation-to-multibyte-objectname

support multibyte key name on getting object operation.
Ignore S3 objects with empty names
(feature)Introducing batch_mode in bucket deletion to delete contents without getting the full list