Moved the IRunOnceEnumerable<T> interface outside of the extensions class.
Moved the IRunOnceEnumerable<T> interface outside of the extensions
class.

This is because having it inside means that calling code will require an
extra using statement, or a fully qualified class name including the
parent class every time whenever it is used. Putting it outside means no
extra code is required.

Creou/OnlyRunOnce