Try to keep let/loop symbols in order they were found when warning
Combine unused-locals linter into one common impl for let and loop

They were nearly identical anyway.  I only made them separate
initially because I did not know how much they would diverge from each
other when I started the loop version.
Updates changes.md