SD card initialisation. This patch contains the central parts of the SD support. The system first tries to detect MMC cards, and if none are found then it procedes to look for an SD card. This is incorrect acording to SD specifications but I find it odd that MMC is supposed to cope with SD commands and not the other way around (since MMC is the older of the two). This behaviour is the one Windows uses and has posed no problems with any cards tested so far. It provides flags for the card and host to mark them as SD. The host needs to be marked because the MMC layer needs to determine if it should send MMC or SD commands at points where no specific card is involved. A new helper function called mmc_wait_for_app_cmd() is added to handle the APP commands which are used frequently with SD. CID and CSD parsing are extended to handle SD formats.