Replace references to enumerate results with either const lvalue
rerences or structured bindings. I did not use structured bindings
everywhere as it wasn't clear to me it would improve readability.
This is in preparation to the switch to zip semantics which won't
support non-const lvalue reference to elements:
https://reviews.llvm.org/D144503.
I'd probably pass by const ref here - the forwarding ref seems a bit more general than needed/looks like there could be ownership transfer, etc.