Camera3: Only use Plain Old Data for global variable

When a shared library is loaded, the order in which its global
variables is not defined. For example, for case like below:

A a;
int *ptr = NULL;

Class A {
A() {
  if (ptr == NULL) {
      //do this;
  } else {
      // do that;
  }
}
};

ptr could be initialized before or after A, which causes the
behavior of A's constructor to be different.

The fix is to use Plain Old Data (integer, float, char, or pointer)
as global variable, and defer instantiation of class instance to
runtime.

Bug: 11822202
Change-Id: I806c527f06e19fc44e880d9a536ee7a060b4fa4f
Camera3: Increase retry count when opening camera

This takes care of cases where mm-qcamera-daemon takes a long
time to launch. get_camera_info depends on mm-qcamera-daemon
being up and running to work.

In the worse case, get_camera_info will be held up by HAL for
200ms.

Bug: 10577806
Change-Id: I7068b0f60bf75c407b603f4e0a0bbb19b8f51f0c
Camera3: Clean up ALOGE calls in non-error conditions [DO NOT MERGE]

Use ALOGI/ALOGD instead.

Bug: 12489802
Change-Id: Id7fc9147395af3a9a0fe135d1017a155aad174fb
Merge tag 'android-4.4.3_r1' into HEAD

Android 4.4.3 release 1