Make the System::shutdown function only execute once

Instead of making every single callback executed in
the shutdown function an instance of RunnableOnce,
and making sure they don't execute twice,
make the sure the System::shutdown does not excecute
twice.