resolution code improvements; fixed #4

improvements:
-figured out how to make a tail recursive runWhile. This let me cut out
some cruft, and it should be much more efficient
-figured what that runStepOverClauses addLast or whatever flag was
really doing, and was thus able to remove it.
-startPair doesn't return an Option anymore - basically, if it can't
update the formulas, it should just pass through the prior version.
-this meant doResolution also doesn't have to do anything with Options.
Instead, it just has to return a Validation at the end of the steps it
takes, with a simple failure case (not completing resolution before the
end of iteration).
-also, changed the argument structure of runStepOverClauses, allowing it
to be used in cleaner ways (e.g. the swapped version can be created by
using the swapBack method in the package object).
-fixed up the case classes for the exceptions (they weren't actually
feeding their info to the exception, so it couldn't be printed out).

C&C path fix:
-GetFOL now looks for an environment variable CANDC_HOME.
-it has a check method (unitary) that throws exceptions if the paths
can't be accessed; this is called by MaxTransform during initialization
to check that it'll run properly.