Avoid multiple extraction of thumbnails

When inserting a new memory card containing images, or taking a camera
picture, several requests for a thumbnail for the same picture are made.
At the time the requests are made, no thumbnail exists, so each of the
requests result in the full image being decoded and encoded to a
thumbnail, an operation taking about 100ms per thumbnail. Fixing this
cuts times for image thumbnails in half. Also improves Camera
shot-to-shot times.

When a thumbnail request is completed, scan the queue for identical
requests, and update those requests to avoid having to decode the same
image several times.

Change-Id: I53d720779925de882b0e2f080b0b87ec318e08a9
Generate new picture path in Pictures, not DCIM/Camera

When an app uses the MediaStore.Images.Media.insertImage() convenience
API, put the image in the Pictures folder, not in DCIM/Camera.
This seems like a more appropriate location, and avoids problems with
the Camera folder not existing (the Pictures folder is created during
initial setup).
b/9370759

Change-Id: I231aeae5ee24780ea0337f0ef3fd1a6030f2c372
Import translations. DO NOT MERGE

Change-Id: Ieb5a0fa6b6f79b0eed18ab9d3e4dc5d884c411e8
Auto-generated-cl: translation import
Merge "Import translations. DO NOT MERGE"
am 0e3b0e89: (-s ours) Merge "Import translations. DO NOT MERGE" into klp-dev

* commit '0e3b0e899fdf0ca2fe2e87ae701ebce6183b42ae':
  Import translations. DO NOT MERGE
am 99c89bd4: (-s ours) am 0e3b0e89: (-s ours) Merge "Import translations. DO NOT MERGE" into klp-dev

* commit '99c89bd49932e6ebac2ef03dfb6f635320e7f64f':
  Import translations. DO NOT MERGE
Import translations. DO NOT MERGE

Change-Id: I38e21162ba1f6f8325c589190a64ee569bea8b10
Auto-generated-cl: translation import
am f89e9bc7: (-s ours) Import translations. DO NOT MERGE

* commit 'f89e9bc71e5790b2cbe680a91bd77473fab7d59a':
  Import translations. DO NOT MERGE
am 3901fb63: (-s ours) am f89e9bc7: (-s ours) Import translations. DO NOT MERGE

* commit '3901fb637897b55100f6b00415c186a1af31aff3':
  Import translations. DO NOT MERGE
Import translations. DO NOT MERGE

Change-Id: I43a139889e30322ec389984f95d50a21d4fe2c59
Auto-generated-cl: translation import
am 2e1179c4: (-s ours) Import translations. DO NOT MERGE

* commit '2e1179c424ac1b97fa40bfd74a3684685998dd02':
  Import translations. DO NOT MERGE
am 9d3d6827: Merge "Publish thumbnails for image buckets." into klp-dev

* commit '9d3d682754043c09c0b99f9535cd6154d2f32f92':
  Publish thumbnails for image buckets.
am b4fb0707: (-s ours) am 2e1179c4: (-s ours) Import translations. DO NOT MERGE

* commit 'b4fb07073e52243b3770cadb968083693ce0baf3':
  Import translations. DO NOT MERGE
am d50ca72d: am 9d3d6827: Merge "Publish thumbnails for image buckets." into klp-dev

* commit 'd50ca72d5c8bb7a9d10d6b022bf1aa5eef9c170c':
  Publish thumbnails for image buckets.
am 3e6a4288: Check for path-permissions when opening a file.

* commit '3e6a42887a17a93b8906ff05693587e25158f2b1':
  Check for path-permissions when opening a file.
am 5a7074ee: am 3e6a4288: Check for path-permissions when opening a file.

* commit '5a7074ee531c7010844c1d38fafcecc15fd82c76':
  Check for path-permissions when opening a file.
Merge "Import translations. DO NOT MERGE"
am 7de35fed: (-s ours) Merge "Import translations. DO NOT MERGE" into klp-dev

* commit '7de35fed1ca2e6642dcedef7cdf7df2e33374d4c':
  Import translations. DO NOT MERGE
am 99031ce8: (-s ours) am 7de35fed: (-s ours) Merge "Import translations. DO NOT MERGE" into klp-dev

* commit '99031ce828b7f619e1d5847305a5ee7debdb98c1':
  Import translations. DO NOT MERGE
am 22ef7920: Merge "Fix up path from scan file intent before scanning" into klp-dev

* commit '22ef79205b96f48e7e9b56ed7232d08710fa3a6f':
  Fix up path from scan file intent before scanning