Supported 'timezone' configuration parameter. (e.g. "+09:00" for JST)

This commit adds '**timezone**' configuration parameter which enables users to specify an arbitrary timezone. The following is an example of the usage.

    <match pattern>
      type file
      path /var/log/fluent/myapp
      time_slice_format %Y%m%d
      time_slice_wait 10m
      time_format %Y%m%dT%H%M%S%z
      compress gzip
      timezone +09:00
    </match>

The current implementation of fluentd supports 'localtime' and 'utc'. This commit adds an arbitrary timezone there.

The value format of 'timezone' is the format that Time.localtime(utc_offset) accepts. For example, "+09:00".
@repeatedly

The reason that both `offset_or_config_error` method and `validate` method exist is just for code readability. I wanted to avoid code snippets like below.

```ruby
# From lib/fluent/output.rb
if conf['timezone']
  @timezone        = conf['timezone']
  #@timezone_offset = Fluent::TimeZone.offset_or_config_error(@timezone)
  @timezone_offset = Fluent::TimeZone.validate(@timezone)
end
```
```ruby
# From lib/fluent/mixin.rb
if conf['timezone']
  @timezone = conf['timezone']
  #Fluent::TimeZone.validate(@timezone)
  Fluent::TimeZone.offset_or_config_error(@timezone)
end
```

Code readers can guess that the main purpose of `offset_or_config_error` method is to get the offset value of the given time zone. Likewise, they can also guess that the main purpose of `validate` method is to validate the format of the given time zone.

Probably, there are different opinions against this alias and I won't stick to it so strongly. If majority opinion is to drop the alias, I'll change the code.