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!
No reason to remove. But other provider example is 2-3 lines.
Should I leave those lines? Either is fine for me.