outputs/s3.rb: Support dynamic s3 key names

Previously, the plugin did a simplistic/static s3 key generation (based on hostname, time and part number) and did not support adding a prefix to that 'file name'. 

I added a config key which allows users to specify a format, in which certain key will get replaced with values from the plugin configuration and what not.

Should this be accepted in mainline, this will not impact any users of the s3 output unless they decide to use this new config key. 

    s3_key_format => "some-prefix/%{endpoint_region}/%{date_directories}/%{hostname}-%{time}.%{part}.json.log"

    s3_key.gsub! "%{bucket}", @bucket
    s3_key.gsub! "%{pass_time}", @pass_time.strftime("%Y-%m-%dT%H.%M")
    s3_key.gsub! "%{canned_acl}", @canned_acl
    s3_key.gsub! "%{hostname}", Socket.gethostname
    s3_key.gsub! "%{endpoint_region}", @endpoint_region
    s3_key.gsub! "%{date_directories}", @pass_time.strftime("%Y/%m/%d")
    s3_key.gsub! "%{time}", @pass_time.strftime("%H.%M.%s")
    s3_key.gsub! "%{part}", "part-#{@sizeCounter.to_s}"
    s3_key.gsub! "%{tag_path}", @tag_path unless @tag_path.nil?