ICP1: Copy query evaluator to tinker with it

Exercise series 5 is about changing parts of the implementation so make
sure it doesn't break earlier exercises.