Move normalize to rank util
Move longestPath to util and optimize it

The new implementation for longestPath gets about a 6x speedup with the
dfs inlined.
Some cleanup and optimization for feasibleTree

Optimizations yield ~1.4x speedup.
Rankers can now be selected with the rank function