refactored domainIterator() with iterator() in Iterable, so that it is
identical to java.lang.Iterable, except for the element() method
moved T element() into AbstractSinglton class, thus making my Iterable
identical to the java.lang.Iterable...except that my extends Domain!!
deleted StandardIterator
simplified the Singleton types morass
renamed to Light, to indicate that there is no Category field