optimize: Add a recorder that can track the whole optimization
Created by: btracey
Right now we provide Printer
which is useful for tracking progress through the command line. We should provide a way to record all of the optimization steps for post-facto analysis.