A general projection can be specified by providing
two methods; a source method runs on each member of a source
population and decides which entities in the dest population
it wants to connect to; a dest method has access to the
internals of the destination entity and decides which
requests to fulfill.
Classes used for a general projection.
Example general projection - all to all.
GeneralProjection(Population srcPop, Population destPop,
SourceMethod sm, DestMethod dm)
The SourceMethod can be written in a script language;
it decides which members of the dest population it might
want to connect to (maybe looking up population methods
to check for candidate entities within range of this entity,
or selecting an entity at random, or possibly broadcasting
a request to all members of the destination population).