add checks on whether bucket names correspond to consistent paths

For example, disallow treatment of a name as both a file and
a directory.
fix delete on objects with weird names

Most functions from `aws/s3` effectively want URI-encoded object
names, but not `delete-multiple`.