Lots of good stuff here. I'm committing this while sitting at the gate in Chicago waiting to take off...

I reorganized SeqScanExecutor so that it will always scan the EvictedTable after the regular scan. We have to create two different iterators because the schemas of the two tables will be different.

I also think I fixed the random crashing problem in the EE when we throw the EvictedTupleAccessException. I switched our internal access tracker to use an std::vector instead of std::list

Expanded tests to make sure that we check all the different access paths with evicted tuples. I will continue to expand this on the flight right now.