Add logging capabilities.
Use Guava's DoubleMath.fuzzyCompare in critical places
Clean up Haessler's SHP implementation.

Was hit by a floating-point math problem. Temporarily it was fixed
using Guava's DoubleMath.fuzzyCompare() method. Something more reliable
should be implemented in future.

Basic logging using log4j 2.x was added to SHP method flow.

General clean-up was done.