GCS: Add custom upload path, Content-Type, ACL, Cache-Control, etc!

Add arguments:
- upload-dir
- detect-encoding
- cache_control
- acl

...And, support Content-Type header!
`detect_encoding?` and `encoding_for` are now shared by 2 providers (`gcs` and `s3`). Perhaps it is time to move them to provider.rb. `encoding_option_for` is not shared, so maybe that's not such a good idea.