(maint) Enable rubocop checking for shadowed variables

Previously, we allowed variables to be shadowed by variables
of the same name at local scope. This can make for confusing
reading to someone new to the code (and can potentially indicate
logic errors).

So this commit enables rubocop checking for shadow variables. It
also fixes (by renaming) all extant shadowed variables. Naming
is hard, but a best effort was made.
Unrelated to your change, this code is strange. The `dependency.tap` ensures the `dependency` object is returned after the block yields. And that happens to be the last statement in the method. So that's what the `initialize` method returns, which really shouldn't matter because it's `initialize`. In which case, it seems like we could eliminate `dependency.tap` altogether.