Split the sd headers between structures and defines
Mark emmc registers as volatile

This is so we can activate compiler optimizations later, though it's not
enough: with -O1, sd_init fails when sending ACMD41. The interrupt
register is positioned to 0x38000 (ERR | CTO_ERR | CCRC_ERR).