Cleaned up and refactored.

Made FSI evaluation optional - if you don't pass in an FsiEvaluator,
nothing is evaluated.
Moved the evaluation to a separate phase, instead of conflating the
formatting phase.