Implement disk mode in main firmware
This is a first pass at implementing disk mode.
The interaction between Micropython and disk mode are a bit hacky - when switching to disk mode, we simply trap the micropython task in a for (;;)
. Ideally, we would be able to then unblock the task. Instead, we just rely on disk mode being exitable by the user via a reboot.