Improve Python 3 compatibility (without breaking Python 2.6+)

- Use functools.reduce() instead of the built-in reduce()
- Coerce options.keys() to an expected type before comparison
Update Python version compatibility in README