[DRIVERS] mmc: Cleanups and improvements in mmc core

This patch does lot of cleanups in mmc core implementation.

It also makes mmc core APIs more similar to linux mmc APIs.

Signed-off-by: Anup Patel <anup@brainfault.org>