(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.
I believe the `o.parse!` at line 48 is *inside* the block. Can you sanity check?