camera: add support for various focus modes

Change-Id: I4d06a57292edaa28cae68154f32184178b15f2e7
camera: add support for various scene modes

Change-Id: Ie2cd3066010713870c7ba465ad6b57daa2c2573e
Fix the settings panel freeze

When one of the list items are selected from the settings panel
then the whole panel freezes until either the app is restarted or
the entries are long clicked.

This is reproducible on any HDPI devices even with the Official
Gallery app from Google.

Change-Id: Ifc8b6703dbc698d288a5163ff2d3ce20decf254d
Camera: Allow setting "profile-video-size" before recording starts

In Samsung Galaxy TAB 10.1 (p4, p4wifi, p4tmo, p4vzw) in HD (720p)
recording dicoloration happens on top third off all video recordings
due to the preview size not set correctly. This fixes it that the
correct preview size is set so that no discoloration happens.

Change-Id: Ib51be18dff76df882984e644becb9430fe6cd5c8
Camera: properly detect multiple cameras when using the camcorder

Currently, the option to switch between front and rear cameras is
available whether or not the device has multiple cameras. It does
work correctly when in camera (still) mode , the bug only happens
in the video camera.

Change-Id: I66d1a01ff496ed03544049bd1d03881fbef3a07f
Camera: port additional settings from jellybean 4.1 (Round 2)

- add touch-to-focus timeout duration settings
- add volume button zoom controls to camera and camcorder
  (Panorama does not support zooming)

Change-Id: Ib2c2c152a52b2616dd0da6f071f572d34fe64065
Videocamera: Fix the settings panel freeze

Same as http://review.cyanogenmod.org/#/c/30553/ for the video settings panel

Change-Id: Ic9b39d8328696b7a14c693e05d4a9d7b48a92b10
CameraSettings: Fix crash when HAL has too many exposure steps

Most of the exposure code works with arbitrary ranges, but the
icons that are presented to the user to choose a value are limited
to the -5..5 range, so take only those into account...

Change-Id: I9eb0b7fc92373d61c93ec7215fcb43dfc574b62c
Camera: Don't try to set focus/metering areas when none exist

Avoid calling the set methods when the areas are null, this causes
issues with some camera HALs

Change-Id: Iea6efbe113e1c87f22c891bf8a9cd47bc2c1cb22
Camera: Do not start autofocus when snapshot is in progress.

(cherry picked from commit 9fbccbe5bad2249e13a86581ecbd1e68810a0e90)

Change-Id: Id28c90b43ce33702d9c421e9a3b19d4502b77609