Reduce the number of public interface by making many files, classes, functions, and variables as private by using the "_" prefix.
Added more docstring to the public interface.
Simplified the _Simulator class. It now does not accept data streams, but only accept waveforms. It is the caller's responsibility to manage the data streams, so the Simulator's job is more clearer.
Revised the data pipeline classes such as SpeechDataset and DataGeneratorTrain.
This PR mainly clean up the simulation folder: