Allow extensions to be reloaded
Extensions should be reloadable at runtime, but there needs to be a way to serialise their state. I am thinking a callback in the extension to serialise needed state. However, perhaps bad state is the reason reloading is being done? I don't know how to handle this...