DO NOT MERGE: camera2: Performance potpourri.

Bug: 16208403
Bug: 15116722

Fixes many of the performance issues in the Camera2 API and
LEGACY mode CPU path, including:
- Only call getParameters/setParameters when the request has changed.
- Cache Request/Result objects.
- Cache object hashes for long-lived CameraMetadata, TypeReference,
  and Key objects with frequently used hash methods.
- Switch to Command pattern instead of repeated if/equals calls.
  in frequently hit CameraMetadata get/set methods.
- Move string construction for logging behind flags to avoid extra
  StringBuilder calls in frequently acquired lock methods.
- Cache results from frequently used JNI calls in object Builders.

Change-Id: I77bc4a023d4fe8bc46efcf771ff18ee268dcb9a9
11 files changed