ASoC: core: Use driver core probe deferral

In version 3.4 the driver core acquired probe deferral which is a core way
of doing essentially the same thing as ASoC has been doing since forever
to make sure that all the devices needed to make up the card are present
without needing open coding in the subsystem.

Make basic use of this probe deferral mechanism for the cards, removing the
need to handle partially instantiated cards. We should be able to remove
even more code than this, though some of the checks we're currently doing
should stay since they're about things like suppressing unneeded DAPM runs
rather than deferring probes.

In order to avoid robustness issues with our teardown paths (which do need
quite a bit of TLC) add a check for aux_devs prior to attempting to set
things up, this means that we've got a reasonable idea that everything will
be there before we start. As with the removal of partial instantiation
support more work will be needed to make this work neatly.

Change-Id: I97fa366385d9cf192c80da835777eb4651f526e2
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Git-commit: b19e6e7b763c7144bfe2ceccf988b64d66d6dd0a
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Acked-by: Liam Girdwood <lrg@ti.com>
[phaniu@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>