hal: Featureize FLAC offload support

 * Not all devices will have this code in the DSP, let alone the kernel.
 * Featurize it, but leave the codec bit width and sample rate controls
   in place so that 24-bit PCM offload still works.

Change-Id: I6e156048906a2b638e9ec4a083755536a14e161f
hal: Offload bugfixes

 * Always reset the bit width and sample rate if any active offload
   stream is different. Failure to do this can crash the DSP, and
   certain limitations come into play when a high samplerate is used
   such as effects being unavailable.
 * Don't send errors to the framework when the timestamp query fails
   before the stream is up and running.

Change-Id: Ieeaafe8965e3cdc69b8dd64be85fbb3bf48c020b
hal: Extend MULTIPLE_OFFLOAD_ENABLED ifdef

* Fixes compilation for non-MSM8974 devices without
  MULTIPLE_OFFLOAD_ENABLED

Change-Id: I8a83d10e68618e141a128af5198ebf1bfb731a6a
hal: PCM offload shouldn't enable all types of offloading

 * Some older versions of the DSP cannot offload audio streams
   for A/V content. Remove the extra check so each feature must
   be explicitly enabled on the device.

Change-Id: I23aac6be5bd160b61e54eab8761e97bbbd5ae045
hal: Fix the samplerate/bitwidth comparison

Change-Id: If507ee28d4b3333dd91af286f2653554590fd7c4