- fix issue where backup / restore was freezing the emulation state
- use JSON to backup/restore instead of C++ copy constructors
using JSON has certain implications on overhead, but the C++ copy constructors were causing the emulator to glitch and freeze for mappers 1 and 2. By using a single line of backup/restore for this feature, as well as serialization, only one persistence mechanism needs to be tested. Performance evaluation is necessary to determine whether the C++ copy constructors are quicker or slower than using the JSON structures for backup/restore. If they are no faster, there is no reason to support them really.