Compatibility measurement hacks when targetSdkVersion <= JB-MR1

All three of these are interrelated!

* Allow broken MeasureSpec values. The long-standing implementation
  of MeasureSpec.makeMeasureSpec has been to add both values rather
  than masking/or-ing the values together. Some old code relied on
  this, such as if it mixed up size/mode params.

* Disable ImageView adjustViewBounds allowing the view to grow beyond
  its initial size. A bug in RelativeLayout in the presence of the
  above MeasureSpec fix causes this not to work properly in apps.

* Allow RelativeLayout to send overflowed/bogus MeasureSpec values
  when measured with MeasureSpec.UNSPECIFIED mode. Some apps have
  custom child views that do not properly handle UNSPECIFIED
  measurements, but the exact overflow semantics caused this to
  generate AT_MOST $REALLYBIG MeasureSpecs for those views instead if
  they were placed inside a RelativeLayout in a scrolling container.

Change-Id: I977a5f1ba5637f0cba3d26a70139e2bcd021fc9c
3 files changed