Drasticly reduced memory overhead.
* Replaced HashMap representation of Edges with a BitVector and a custom
array of nodes.
* Replaced representation of primary edges with a BitVector