camera: Fix android.hardware.cts.CameraTest#testFaceDetection

junit.framework.AssertionFailedError: Should throw an exception if face detection is not supported.
camera: Fix various focus-related errors

* Validate that the focus region is within legal boundaries
* Reset the region to sane values if bad ones are given
* Set a default empty region
* If auto focus exists, it must be the default

Fixes android.hardware.cts.CameraTest#testFocusAreas and
android.hardware.cts.CameraTest#testParameters
camera: Fix invalid parameter returns

The camera API expects invalid parameters not to return silently;
They should throw an exception, and set the bad parameter(s) back
to the last known good value.

Fixes android.hardware.cts.CameraTest#testImmediateZoom and
android.hardware.cts.CameraTest#testInvalidParameters
camera: Fix disabling location

If Camera.removeGpsData() is invoked from the userland API, we
must invalidate the previously stored GPS data to prevent it from
being saved in EXIF.

Fixes the invalid storing of location data after an explicit disable
Fixes android.hardware.cts.CameraTest#testJpegExif
smdk4412-common: camera: fix EXIF attributes for S5C73M3 sensor

S5C73M3 sensor which is the back camera, doesn't return the EXIF
attributes using V4L2 IOCTL. This sensor interleaves YUV and JPEG
frames along with Metadata which contains the EXIF information.

This patch does the following:
Manually extract the EXIF information from the interleaved metadata
and implement ISO, Flash, Exposure, Exposure Time and Exposure Bias
EXIF attributes for S5C73M3.
Fix incorrect Exposure EXIF attribute that was reporting as 1'.
smdk4412-common: camera: fix scene mode snapshot capture crashes

Few Scene Modes (like Night, High Sensitivity) if set as default,
after the camera opens, require the scene mode to be set when the
stream is turned on inorder to properly take effect. Not doing so
will result in crashes while trying to capture the snapshot.
WIP camera: set parameters depending on scene mode