Add Parallax support

Parallax includes three parts:
1. ParallaxSource which tracks a list of changing Variable values
   typically retrieved from position of foreground UI elements.
2. ParallaxTarget which performs a update(float) operation on
   another target (e.g. background view)
3. ParallaxEffect includes a list of KeyValues used to compute
   the fraction from current Variable values in ParallaxSource.
   Then it will call update() on target.

ParallaxSource is the abstract class to be implemented.  For example
app can define a ParallaxRecyclerViewSource to tracking child view's
positions on screen.

ParallaxTarget is backed by PropertyValuesHolder, it supports
arbitrary Property of different types: float, int, Rect, etc.

Change-Id: Iaa0c2354619ae6d2ddc6bfd0a1929714dd991fde
5 files changed