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

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

Change-Id: I2cf8d26e94c0943838db7300ab05b4c0172b15c1
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
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
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