Cleanup/formatting - renamed Enumerable/Enumerator to TEnumerable/TEnumerator and added static Enumerable class to deal with C++ limitation of not allowing two classes that have the same name but different template parameters