Fixes for mass-erase
Explicitly wait for DEVICE_EN signal in memory access port
Startup reorganization, more reset retry fluff

Working on making this reliably halt a chip that's stuck in a watchdog reset loop :(
Fix confusing error message

CSW at this point isn't valid if the error wasn't a timeout but it was something else instead, like a FAULT.
Cleaner and more reliable reset+halt

Now works even when the CPU is stuck in a watchdog reset loop, as it would be when the flash is totally blank.
More work on flash memory programming
Implement byte-wide AHB-AP read/write, fix hex dump