fireworks: support switching clock source

mechanism:
1.when detecting clock source, fireworks return bit flag against GET_POLLED
  command. The position of bit is the same as the value of
  enum snd_efw_clock_source. Of cource, any flag stands when multiple clock
  source are available.
  'Internal' is always available, so the first bit always stands.
2.When requesting to switch clock source, driver can set the value by set
  command. Then the firmware returns the changed value against get command.
  This can be done when no other sources than internal. So the driver should
  check the flag before setting.
  When any clock source are set even if they're not available, the firmware
  seems to be select 'Internal' instead of it.