Clean mirage internals.
Redo r25068 / rP25068. Now! with not broken serialisation :D
Use a map that stores the functions, instead of them being part of the Mirage component.
Doesn't need to initialise the variables anymore (refs. #5979).
Saves the mirages in a global to allow (de)serialisation.
Only assign values on Init, not on Construction (to allow deserialisation).