Reader: refactoring

* drop the concept of 'tasks' for a single 'message_handler'
* proper accounting for total_ready
* refactor RDY state handling
* renames and 'privatizing'
* add LegacyReader for backwards compatibility
* add concept of name
* run redistribute when we're in backoff too
* add docstrings