Hierarchica Hub Labeling algorithms

Hierarchical Hub Labels are practical refinement of Hub Labels.
This commit contains HHL algorithms implementations which are combined
into a few programs:

hhl - path-greedy and label-greedy HHL algorithms for general graphs
and graphs with unique shortest paths

akiba - Akiba et al. algorithm to compute HHL from a vertex order

degree - order vertices by degrees

lcheck - check labels

The main code for these programs is written as c++ header library in
`lib` directory. Notable headers are:

graph.hpp - directed graph class, read from DIMACS and METIS file
            formats is supported

hhl.hpp - greedy HHL algorithms for general graph

uhhl.hpp - greedy HHL algorithms for graphs with unique shortest paths

akiba.hpp - Akiba et al. algorithm
Remove binary heap implementation

There is a k-way heap. Binary heap is a k-way heap when k=2.