Utilization of domain model and issue with one puzzle temporarily mended

- Now we actually utilize the new domain model. That implied changes to the IPuzzle and propagating that
- I need to make the Towers of Hanoi puzzle testable. It had an issue, somehow my recursive function utilizing yield return wasn't working on all cases.