date_range should (at least optionally) deal with right-open intervals

It is confusing that, albeit the name suggests otherwise, `date_range` behaves differently compared to the standard Python `range` generator in that it returns the right-closed interval.