camera: Add options to better control video preview size

 * usePreferredPreviewSizeForEffects is needed to fix camcorder effect on
   some MSM8660 devices.
 * Add ignorePreferredPreviewSizeForVideo to use the best size reported
   by the driver instead of the preferred-preview-size-for-video value,
   which may report something really awful.

Adapted for cm-10.1 from similar commits in jellybean.
  https://github.com/CyanogenMod/android_packages_apps_Camera/commit/5ea90585dfce5a38f0c91d2ae07145770a0ea569
  https://github.com/CyanogenMod/android_packages_apps_Camera/commit/7310af07d00910033adbd2dce6aaf8b04cd1f220

Change-Id: I58d4f81333a26dbd6d1ce35037b9c32fbd7d5b69
camera: Restart the preview if record size changes

  * Needed to release the buffers on many cameras when the record size
    changes but the preview size does not. Without releasing the buffers,
    we can run out of ION space and end up with a mangled recording.

Change-Id: I3ebee850b3e20b3920368c8e052a428f6dd9e3e5
Merge remote-tracking branch 'aokp/jb-mr1' into jb-mr1