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!
I see.
`detect_encoding?` and `encoding_for` will move to provider.rb.

When it is changed, s3.rb will modify. Is that all right?