2014.12.21 MSS Code Factory CFCore 2.1.12719 Major refactoring and restructuring

The internal relationships used for the GEL runtime have been restructured to
use independent relationship key attributes instead of sharing the TenantId and
CartridgeId of the object.  With the latter, some of the attributes were non-null
so the ORM code would try to resolve the null relationship against the database,
finding no matching lookup.  (I really should check for that and throw an exception.)

But this means that when the GEL instruction table grew to ginormous size by
pre-compiling all the rules on load, the performance of those lookups started
taking enough time that I noticed they were happening.  This release of CFCore
should perform much, much faster than the previous iteration.  The interface
of CFCore has not changed, so you can just drop this update into an existing
deployment, editing startup scripts as appropriate.

The code for CFCore 2.1 now uses the new List interface, which replaces the old SortedMap
interfaces for returned result sets when reading objects by duplicate index.  The lists
are sorted in natural order by ascending primary key, but the SortedMap implementations
Java provides were proving too heavy for a general purpose interface.  As it is, I really
shouldn't bother with sorting the result sets at all, but I do hate a disorderly data world.
I like some predictability and the option of making a few assumptions about the data I see --
like that it's unique within a data set.

The changes for the general purpose Java code have been written, but are completely untested.
I'll be working through getting CFDbTest 2.1 into a clean-building state before issuing the
next refresh of MSS Code Factory 2.0, which will incorporate the fixes for the general purpose
Java ORM interface.  At that point, I'll be ready to manufacture the code for the affected
layers of all the 2.1 projects and distribute the refresh.