SaveBinary.h provides convenient operations for printing a plan to various formats. However, the API forces the user to print things to disk. A more useful API would be to accept a std::ostream instead of a output_filename, thus allowing the user to
- specify where they'd like things to get printed to
- remove code duplication in SaveBinary.cpp regarding opening/closing file streams.