Support variable ranges of expectations; add user-facing `expectZeroOrMoreTimes` method.

It's tremendously useful for me to be able to specify ranges of expectations. In particular I'm using `expectZeroOrMoreTimes` for several of my tests.
Let me know if you have questions or any suggestions for improvements.