This is a distillation of cramium-hal items into "pure API" items so that we can have a parallel cramium-emu crate. The idea is that the API crate sits on top of both implementations; the HAL goes to hardware, and EMU goes to hosted mode emulations.