A build context that matches a mavenproject to a given tasksegment, and the session to be used.
 
 A note to the reader;
 
 There are several issues/discussions regarding how "aggregator" plugins should be handled.
 Read for instance http://docs.codehaus.org/display/MAVEN/Deterministic+Lifecycle+Planning
 
 In their current implementation they are "bolted" onto the lifecycle by separating them
 into TaskSegments. This class represents the execution context of one such task segment.
 
 Wise voices have suggested that maybe aggregators shouldn't be bound to the ordinary
 lifecycle at all, in which case we wouldn't be needing this class at all ( and
 ProjectBuildList.getByTaskSegments). Or maybe they should be introduced in the calculation
 of the execution plan instead, which seems much nicer.
 
 Additionally this class contains a clone of the MavenSession, which is *only* needed
 because it has as notion of a "current" project.