asoc: msm: Check headset insertion for consistency

 * It's possible to get a noisy reading during polling when
   transitioning to PLUG_TYPE_HEADSET. Poll again to double
   check that it's really a headset.
 * This helps when music is at full volume and a headphone
   is inserted. Double-checking the reading vastly improves
   the case where a noisy reading causes a mic to be detected.

Change-Id: I6e0863a46cdfd5316d798bc9b8348927fa403890
asoc: msm: MBHC fixes, round 2

 * Reset the gnd-mic switch when the headset is inserted. Some
   headsets end up in a weird state otherwise.
 * Micbias does not need to be on all the time for regular headsets
   in order to detect button presses. Disable it.
 * Tweak the thresholds such that headsets which require 2.7V on
   micbias correctly start as HIGH_HPH. They will be corrected to
   headsets after the micbias is turned on in subsequent passes.

Change-Id: Ia846d95b81f2dcde1f14e77b0d69d6ab034b4bb4