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

junit.framework.AssertionFailedError: Should throw an exception if face detection is not supported.

Change-Id: I2cf8d26e94c0943838db7300ab05b4c0172b15c1
(cherry picked from commit 78012f3513540230a4617d95b81114218593f921)
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

Change-Id: I3aafcccc2c6081ba44edb3283a850c55178fa90a
(cherry picked from commit 51420db3f615a78736153165a4439d1f099e15b7)
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

Change-Id: I6556369322b7560b0bb35fca57366b42579effbd
(cherry picked from commit 2d2391e849650ecab9dc3344b58b649c201293b2)
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

Change-Id: I9618a27ab9def974bac1d69871c3454300fb4c29
(cherry picked from commit 28cd3f3375476cbf437241bfc5efb223a73955b8)