Buildbot requires that each step in a build has a unique name,
and uses this property to e.g. disambiguate log files.
By default, each step's name reflect what kind of step it is,
e.g. `git` or `test`.

Add count suffixes to the end of the step name if there are
multiple steps of the same type to disambiguate them.
(Buildbot already does this internally for steps added statically
in the `setupBuild` method).

This requires checking all previously-added steps for name collisions,
so add all the steps at one time to amortize this cost.