Added unit test for IteratingSystem

This PR adds:

- Tes unit to IteratingSystem

- Refactor EntitySystem to be an abstract class
This is technically a Spy rather than a Mock, since it informs of internals rather than checking pre and post conditions itself.