ASoC: wcd9xxx: Move to a generic framework for codec core driver.

The current core assumes TABLA as the only codec driver registering.
To support single binary for multiple targets its essential that
we remove this restriction and move to a generic framework
to support multiple codec. This can be done by moving all codec
specific code to dedicated codec driver and use core driver to probe
the codec based on slimbus device id and do generic setup for the
codec. This also helps to have same boards with different flavours
of codec variants.

The WCD9XXX family of codecs share the initial codec register
mapping which holds the Slimbus device id to identify the
codec existing on the target.Core driver now registers the
codec device based on this check.

Change-Id: I4c43d5f04c20696f4f5138411460681ec7879d34
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>

Conflicts:
	arch/arm/mach-msm/board-8064.c
	arch/arm/mach-msm/board-8930.c
	arch/arm/mach-msm/board-8960.c
	arch/arm/mach-msm/include/mach/irqs.h
	drivers/mfd/Makefile
	drivers/mfd/wcd9xxx-core.c
	drivers/mfd/wcd9xxx-irq.c
	drivers/mfd/wcd9xxx-slimslave.c
	include/linux/mfd/wcd9xxx/core.h
	include/linux/mfd/wcd9xxx/pdata.h
	include/linux/mfd/wcd9xxx/wcd9310_registers.h
	include/linux/mfd/wcd9xxx/wcd9xxx-slimslave.h
	include/linux/mfd/wcd9xxx/wcd9xxx_registers.h
	sound/soc/codecs/wcd9310.c
change toolchain location