Improve CoordinatorLayout's inset edge funtionality

Currently the gravity handling only supports literal
single gravity values which makes it less useful.

Also made the edge detection work with animations by
correctly employing our pre-draw listener.

Tidied up some of the dispatch code in CoordinatorLayout
so that we have just one method which dispatches any
events. Means that we don't have to copy code everywhere.

Also added support for the functionality in Snackbar
and FloatingActionButton since that is what most people
will be trying to use it with. Removed our old baked in
functionality from FAB since we can use the new
CoordinatorLayout functionality.

BUG: 30107168

Change-Id: Ib23fa740c4c4f4f733a3894ceb2cc1a2e95b35cd
5 files changed