Default configuration value fixes

- Use time.Duration values instead of raw integers
- Add tests to verify that the default configuration objects created by `New***Config()` validate.
- Fix some comments

@eapache 
Nack, from a comment in the scala producer: "The ack timeout of the producer requests. Value must be non-negative and non-zero". But from the docs: "we will not terminate a local write so if the local write time exceeds this timeout it will not be respected" so it is probably only okay to be 0 because it is basically ignored with `WaitForLocal` anyways.