Soft HAL device
Note: this merge request is a work-in-progress and uses the WIP prefix to the title (I guess that means we'll see what effect that has shortly...)
This is a refactoring of SDIODriver to remove the assumption that all SD controllers are a variation on the official SDHCI controller register set, and to introduce a new class of HAL device with the extra entry points needed to facilitate non-SDHCI controllers.
The design is currently still subject to tweaking (in particular, I'm thinking of changing OpWorkspace to be a function) and the documentation also needs to be updated before this is ready to merge.