Support for rewind operation - using system state and compressed RAM
Description
It would be cool to be able to go back in time to the emulator state.
This is a good proof of concept for the architecture of the emulator.
This issue is related to #7 as getting a system state is required to implement this feature.
The RAM should be compressed to save the system's RAM, otherwise, we would reach gigantic values in no time. This compression can be as simple as using delta encoding as there's plenty of redundancy between states.