Fix bug for flatten-executable to not enumerate more items than source.

GetItem-method is rewritten in order to fix the bug and unit tests are included.
Tests for caching and lazy evaluation for the executable base class.

Includes a implementation of a test-spy-executable.