Added serialization for generated programs and added command line arguments to load a saved program or generate a new one