ZENGINE: Forward declare ZEngine in result_action.h

result_action.h is #included before ZEngine is declared, causing not declared compiler errors
ZENGINE: Change Puzzle::resultActions to a List of pointers instead of ResultAction objects

ResultAction is abstract, therefore, it can't be directly stored in the list