Moves animation lifecycle and software/hardware hand-off into a unified
RippleComponent class, which makes it easier to maintain the components.
Adds better javadocs and comments to explain what's going on.
Bug: 19431322
Change-Id: Ifb9b9a7dcc24238719ef12293493ca3df107679f