fix this mess

camMode and ZSL are persistent across camera switches and switches from
still video to camcorder, resulting in inconsistent states.

The fix:
Don't just detect if camMode is unset, since the previous set state is
too persistent. Instead, test specifically for the special mode Snapchat
sets that the wrapper would never set, where the recording hint is not
on but camMode is.

Ensure we are only enforcing the Hangouts exception for the FFC.

Restore the previous ZSL logic. It worked just fine.

Change-Id: I0751c12ebd4035a86682e9c9c76b7e2d422cbc7e
Merge remote-tracking branch 'cm/cm-11.0' into HEAD