Extract feasibleTree from rank module
Use two passes on tests

The Istanbul instrumentation causes the code to yield incorrect line
numbers, making resolving failing tests more difficult. Until I find a
better way to preserve line numbers we'll run the unit tests twice -
once without coverage and once with.