Plugin system rework

Decoupled most of the code responsabilities, loading and saving
preferences is still not implemented, the emulator engine structure
needs some rework as well, maybe it's time to dust-off some design
pattern books :P