Add GHLp algorithm implementation

GHLp is a O(log n) approximate algorithm for p-norm optimal Hub Labels.
That is it can be used to find both approximately optimal average and
maximal label sizes.
This commit adds a new program:

ghl - find labels using GHLp algorithm

The GHLp algorithm is implemented in lib/ghl.hpp header file.