MST test builds, but fails
Replaced test for exact zero in gradient to numeric zero, removed unnecessary fabs() after checking for negative values
More pedantic c++ compilers (like clang), won't allow an overloaded operator without a user defined class, this is fixed

Concretely, the old operator signatures were:
template<typename TPoint>
TPoint operator+(const TPoint&, const TPoint&)

This would allow us to overload the operator for built in types, such
as operator+<double>.

Instead, I went with:
template<typename T>
Point<T> operator+(const Point<T>&, const Point<T>&)

which doesn’t have this problem. Not sure why gcc ever allowed this in
the first place, but it shouldn’t be an issue now.
Fixed bug in left NN search for singleton nodes