ALSA: hda - Add AZX_DCAPS_SNOOP_OFF (and refactor snoop setup)

Add a new driver_caps bit, AZX_DCAPS_SNOOP_OFF, to set the snoop off
as default.  This new bit is used for the checks in
azx_check_snoop_available().  Most of case-switches are replaced with
the new dcaps in each entry.

While working on it, for avoiding to spend more bits, combine three
bits AZX_DCAPS_SNOOP_SCH, AZX_DCAPS_SNOOP_ATI and
AZX_DCAPS_SNOOP_NVIDIA bits into a flat type of two bits.  This
reduces the bits usages, and assign AZX_DCAPS_OFF to this empty bit
now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
ALSA: hda - Allow forcibly enabling/disabling snoop

User can pass snoop option to enable/disable the snoop behavior, but
currently azx_check_snoop_available() always turns it off for some
devices.  For better debuggability, change the parameter as bint, and
allow user to enable/disable forcibly the snoop when specified via the
module option.

Signed-off-by: Takashi Iwai <tiwai@suse.de>