[1/2] Camera: add software HDR rendering

This allows devices without HDR camera (so all phones except Nexus 4
I think...) to actually take HDR pictures. When the mode is enabled,
pressing the shutter button will take 3 shots, one a minimal exposure,
one at 0 exposure, and one at max exposure. The 3 shots are then fed
into a software HDR processor that will merge the 3 images into one
final shot.

There are two algorithms available for merging pictures, one is a
simple average between all pixels, and the second one is based on
Reinhard's algorithm. They all need tweaking, and only the first one
is used for now.
Average algorithm is available in RenderScript form. This beastie
speeds up a lot!

Source shots are removed after HDR is computed

Change-Id: I7a9e52e56258a0c755f4def22db51ac84501ce9a
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 "[1/2] Camera: add software HDR rendering" into cm-10.1
Merge remote-tracking branch 'origin/cm-10.1' into cm-10.1-linaro