Work around unfortunate libstdc++ interpretation of C++ cmath requirements

...that causes a call to std::abs with a short argument to effectively select
the double overload (via a template added with <http://gcc.gnu.org/git/
?p=gcc.git;a=commit;h=8c0edf5c2aad076cbc805299ed82845ae049f4f6>
"include/c_std/cmath (abs(_Tp)): Add"), see
<http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-toc.html#2192> "Validity and
return type of std::abs(0u) is unclear" for details.

The workaround is to use int instead of short arguments (and make sure the
integral overloads of std::abs from cstdlib are available).

Change-Id: If95363f9a54abb9cb1a57fd4828c4b91c12bc4be
Operators for Point are only overloaded for long, not double

...so no use giving double arguments that are implicitly cast to long anyway.

Change-Id: I26b9059fc5ab0d55c3f320e2b2f55502423541a9