Add option for always using the public URL

This change makes it possible to not grant your `AWS` user `s3:PutObjectAcl` use and still use non-authenticated URLs.

For example: the bucket policy below grants `s3:GetObject` use to everyone (making all objects public), and `s3:PutObject` to a (fog) user.

```
{
  "Id": "AppBucketPolicy",
  "Statement": [
    {
      "Sid"       : "AppReadAccess",
      "Effect"    : "Allow",
      "Principal" : { "AWS": "*" },
      "Action"    : "s3:GetObject",
      "Resource"  : "arn:aws:s3:::fog-directory/*"
    },
    {
      "Sid": "AppReadWriteAccess",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::XXXXXXXXXXXX:user/fog-user-YYYYYYYYYYYY"
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::fog-directory/*"
    }
  ]
}
```