Implementation of guaranteed delivery from ForwardOutput to ForwardInput

This patch provides "At least once" transferring on out/in-forward protocol.

This pull request is re-request of https://github.com/fluent/fluentd/pull/422.
And added patches below:
 * rebase w/ v0.12 code
 * use `chunk.unique_id` as ack value
 * implicit configuration variable: extend_internal_protocol
  * assume from other configuration values
 * default ack timeout: 190secs from linux SYN_ACK defaults
 * raise error for ack timeout to retry to send

```rb
FORWARD_HEADER = [0x92].pack('C')
FORWARD_HEADER_EXT = [0x93].pack('C')
```

define above constants and using it in `forward_header` is good for reducing creation cost.
But it is not critical.