Restructure the Transition support library

Transition classes no longer delegate to platform Transitions.

Underlying features are separated into their own compatibility layers.
- ViewOverlay and ViewGroupOverlay (platform: 18)
- WindowId (platform: 18)
- ViewGroup.suppressLayout (platform: 19, not backported yet)

This does not change behaviors except for the followings:
- On API level 18, WindowId and ViewOverlay delegate to the platform
- Transition is Cloneable
- Inheriting Visibility now works fine

Test: All existing tests and VisibilityTest pass on 15, 16, 18, 19, and
      25
Change-Id: I87e7a14a45d51b5ad6f77ab213c7a732b7512708
53 files changed