refactored the string (CharSequence) implementation classes
refactored from OpNode to Operation, and other related changes
moved Domain Result classes to domain package
Recursive refactored to Evaluable; eval() refactored to evalulate()
refactored CharSequenceResult into ChainOperationBasic to emphasize
similarity with ChainOperation
made it abstract and renamed it accordingly (it has never had a real
constructor, nor a specific way to store the strings)
replaced CharSequence [] with JavaDomain<CharSequence> in Chain
made OperationBaseCachedLocallyBase a subclass of
EvaluableCachedLocally;
uses a global (statically declared) Google cache
the type of the cache keys is now restricted to Evaluable<V>, rather
than Object
made DomainIterator generic and wrote code to concatenate strings
moved DomainIterator from Domain into JavaDomain
using StringBuilder to concatenate
moved some classes (mostly abstract) around, mostly out of the core
package
renamed interface FiniteSet to Finite, it's just an interface
replaced Variability in Domain with Modality, which by default is AMODAL
removed the certainty() method from Domain. There is no need to have
this way of representing uncertainty. First, as an Entity, a Domain
represents a concept, thus it is inappropriate to assign a truth value
to it; the domain Unicorns=(Gigi) does not exist in reality, but it
exists as a concept. WHat is false is the statement that it exists in
reality. Secondly, as a Form, it is useless to have this extra feature.
introduced VariableElement and RandomElement to illustrate modal Domains
changed return type of cardinality() to new type Cardinality
added Undefined to Cardinality; 
changed super class of StringCategory from AbstractDomainForm to
AbstractDomain (it is premature to worry about it being a Form)