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

I think that ACK timeout is a kind of response error. It's about response, not about sending messages, formatting, configuration not others.
Many http agents uses response code 500 as result of http request call for cases without any responses from HTTP servers.