Fix Signature Does Not Match when mounting Amazon S3 external storage

For some reason the ```aws-sdk-php``` package does not calculate the
signature correctly when accessing an object in a bucket with a name of ```.```.

When we are at the top of a S3 bucket there is a need(?) to have a directory
name.  Per standard Unix the name picked was '.' (dot or period).  This
choice exercises the aws-sdk bug.

This fix is to add a field to the method to store the name to use instead of
'.' which at this point is hard coded to '<root>'.  We also add a private
function ```cleanKey()``` which will test for the '.' name and replace it with
the variable.  Finally all calls to manipulate objects where the path is
not obviously not '.' are processed through ```cleanKey()```.

An example where we don't process through clean key would be
```
	'Key' => $path.'/',
```
@ctjctj please clarify