Parallax: API factorying and add direct mapping

Remove six classes from api file:  Parallax.IntParallax,
Parallax.FloatParallax Parallax.IntPropertyMarkerValue,
Parallax.FloatPropertyMarkerValue, ParallaxEffect.IntEffect
parallaxEffect.FloatEffect.

Remove methods Parallax.verifyProperties ParallaxTarget.getFraction
from API file

The standard parallax mapping converts value of source
into 0~1 fraction then convert it back to target value.
This is not only inefficient but also causing rounding errors.
Added a concept of ParallaxTarget.isDirectMapping(). When
true, ParallaxEffect bypass the fraction calcuation and directly
passes value from source Property to
ParallaxTarget.updateValue(Number).

Now DetailsFragment uses direct mapping for changing
child drawable's bound.

Fix the bug that ValuesRule's type is unmodifiable.

Bug: 35933446
Bug: 32022097
Bug: 35632609
Test: DetailsFragmentTest.parallaxTest
      ParallaxIntEffectTest.testDirectMapping
      CompositeDrawableTest

Change-Id: Ibd89ba6621fc0804ea24cba099b6d2e6bf3fccc9
18 files changed