Better discard functionality

* `maxAttempts` option for Reader is now `0` by default. The default means that the feature is turned off.
* If there is no `DISCARD` handler and `maxAttempts` is `> 0` then the message will be sent to the `MESSAGE` listener.
* `message.finish()` will always be called when `maxAttempts` has been exceeded.
* Updated the README to reflect new behavior.

Fixes: #38 

TODO:
- [ ] Changelog
- [ ] Ensure multiple calls to `finish` isn't problematic.
It looks like it's possible for this test to never finish (except for on a timeout violation). Is there a more reliable way to know that DISCARD was not called, or is the only way?