start should be optional: https://docs.python.org/3.8/library/itertools.html#itertools.count
Directly changing the second overload to mark start as optional
generated a mypy error about overlapping overloads, but adding a third
overload seems to work.
I also noticed that `_NStep` was defined as a TypeVar when I think it
makes more sense for it to be a Union, so I went ahead and changed that
as well.