Did a refactor to better organize the camera flipping code. Also, I
wanted to make sure we handle the cases where the user doesn't have two
cameras (or no cameras, for that matter). In these cases, we just don't
show the appropriate buttons.
Attempts to:
1) Successfully play ringtone through speaker instead of earpiece
when possible.
2) Manage bluetooth headset connectivity as well as possible
3) Eliminate notification sounds while in-call when possible
4) Make sure audio is correctly setup when receiving calls
Fixes#6271Fixes#6248Fixes#6238Fixes#6184Fixes#6169
// FREEBIE