Issue title: Don't treat EOF as an error when enable.partition.eof is false
 Issue body: Description
===========
By setting enable.partition.eof to false, EOF is not emitted to the application, but internally, EOF is still treated as an error. Meanwhile, we have fetch.error.backoff.ms defaults to 500ms. As a result, regardless of enable.partition.eof value, by default, every time consumer hits EOF, it will wait 500 ms before next fetch. It might be what most people want as a default behavior, we are building an application that requires a latency much lower than 500ms.

The workaround right now is to assign 0 or a small value to fetch.error.backoff.ms. But this is not ideal because we still want to wait 500ms or even longer should other errors happen, e.g., leader not available. A better solution would be to skip error backoff for EOF when enable.partition.eof is false. Alternatively, we can also have a separate error backoff just for EOF.

cc @qix

How to reproduce
================

Use high-level consumer to consume from a low volume topic so that it will hit EOF. Note that this is not bug. librdkafka is behaving as designed, but we are proposing an alternative design.


Checklist
=========
Please provide the following information:

 - [x] librdkafka version (release number or git tag): 0.9.2
 - [x] Apache Kafka version: 116.69.203.115
 - [x] librdkafka client configuration: fetch.error.backoff.ms=500, enable.partition.eof=false
 - [x] Operating system: Ubuntu 16.04
 - [x] Using the legacy Consumer: No
 - [x] Using the high-level KafkaConsumer: Yes
 - [ ] Provide logs (with `debug=..` as necessary) from librdkafka
 - [ ] Provide broker log excerpts
 - [ ] Critical issue


 Comments: 
 Comment 0: As to not change existing behaviour (which people might depend) I think your second proposal is good: adding a separate configuration property.
But it might be better to abstract that somewhat and add a higher-level property that defines the application's desired maximum latency and then various parts of the code can use that value automatically to try to adhere to that contract.

Something like `latency.max.ms`, which could also be used for the producer.

What do you think?
 Comment 1: That's even better!
{'source': 'GithubIssues', 'repo_name_with_owner': 'edenhill/librdkafka', 'issue_id': 203518335, 'repo_stars': 6277.0}