Fixed error in the ToolPath::Round() method for negative numbers.

Added ToolPath::Test class to contain some basic unit tests for the ToolPath class.  It's only compiled in for FC_DEBUG compilations so the bloating in the code shouldn't be too bad.

Removed the ToolPath::round() (lowercase one) as it was redundant.
A couple of very minor performance improvements for the Paths classes.  (std::vector and std::list changed to std::set where it made sense to do so).
More std::list to std::set changes for performance.  Just tinkering.
Fixed error in the Intersect() method that I just introduced due to my overzealous attempts to speed things up.
Completed the implementation of the Paths::Split() method.
Added Paths::Faces() method.
Small rearrangements to allow the use of Cam::Point as well as gp_Pnt in some locations.
Added Paths::PointLocationData() method to allow the intersections of contiguous path objects (lines, arcs, splines etc.) to form the definition of point-location information for drilling, counterbore and other such point-based machine operations.