Major BUG fix : Error with geometry tracking:

   This is a major fix to the method of tracking "neutrons" through the
   simulation. The function trackCell has been re-written to use only
   isDirectionValid rather than pairValid.

   For the time being pairValid and all the accompaning bagage has been
   left BUT that hopefully isnt for long.

   The new code is much faster. It seems robust relative to simple
   checks on pipeline code [ts1 target/ess/chipIR] but could easily have
   a few problems.

   Further : There was an error with EllipticCyl that allowed neutrons
   to escape. [Fixed Line::intersect and EllipticCyl::setSurface]

   Additionally, to make life easier when intersecting projected
   objects, two additional functions have been added to Vec3D. They are
   cutComponent and Component. The functions calculate the Vec3D that is
   in the direction of the test vector. This work means that a complete
   rebuild is necessary.

   Additional work on exploring the TS1 upgrade has taken place.