Issue title: put command doesn't always interpret "-" as stdin
 Issue body: Using 1.5.2:

```
$ BUCKET=search-archives
$ echo "12345" | s3cmd put - s3://${BUCKET}/test_keyname
<stdin> -> s3://search-archives/test_keyname  [part 1, 6B]
 6 of 6   100% in    0s   181.99 B/s  done
```

Working as expected. However, if you pipe that output to `cat`:

```
$ echo "12345" | s3cmd put - s3://${BUCKET}/test_keyname | cat
File '-' stored as 's3://search-archives/test_keyname' (0 bytes in 0.2 seconds, -1.00 B/s) [1 of 1]
```

it thinks you have a file named "-"

 Comments: 
 Comment 0: Should be fixed, I can't reproduce anymore with 2.0.1
{'source': 'GithubIssues', 'repo_name_with_owner': 's3tools/s3cmd', 'issue_id': 85615488, 'repo_stars': 4016.0}