Added templated copy constructor and operator = to PointN/2/3.
In addition to being able to construct/assign a point from points
of the same type, you can also assign points of different types,
or perform typecasts. Examples:
    Point3i pi1( 1, 2, 3 );
    Point3i pi2( 4, 5, 6 );

    //Construct
    Point3f pf( pi1 );

    //Assign
    pf = pi2;

    //Typecast
    distance( (Point3f)pi1, (Point3f)pi2 );

Added distance, distanceSq, and manhattan functions to PointN.hpp.
Given two points, these functions return the linear distance,
squared linear distance, and manhattan (straight line) distance,
respectively.

Changed output format in the unit tests program.
PASS/FAIL is now on the left, and the name of the test is on the right.
The completion message is now colored yellow.

Added unit tests to PointN, Point2, and Point3 for the new
copy constructors, assignment operators, and distance functions.

Added shared utils file to UnitTest project.