core: release core's registrations through modules.onUnload
The run that subscribes to the Still bus and to ketyl.inputMap's controls is
the only one holding the unsubscribers, and a hot-reload replaces it. This
gives that run the engine's own teardown hook instead of parking the handles
on a module nobody reloads, and wires the bus at module load so core's ear
survives a reload with no component having to notice.
KetylPilot takes and gives up the controls in onEnable/onDisable, since
liveness follows who has control rather than what exists.