Pods 2.5 optimizations work

This is a general PR for all the 2.x-optimizations work done so far by @jamesgol / @pglewis; to ensure we can see a full big picture of the changes. This will make it easier to review everything as it currently is (or becomes) and I can comment on the difference lines.
I'm not sure why you initially did that unset( $lookup[ 0 ] );  but later on the foreach in there was a bugfix for an issue.  The foreach basically adds what was $lookup[ 0 ] back in, as well as other unneceesary fields