Added invert() and negate() methods to Vector, which perform in-place operations.
* invert() sets each component of the vector to its multiplicative
  inverse, i.e. x -> (1 / x)
* negate() flips the sign on all components in the vector, i.e. x -> -x

Added a free function, invert( Vector ), which is the same as
the in-place .invert(), but returns a new vector instead.

Added unit tests for the new functions, and added divide-by-zero tests for Vector.

Changed type of iteration variable in PointN.hpp / VectorN.hpp from int to size_t