### Context
Currently the `setBorderColor` method of MDCShapedShadowLayer can receive a dynamic color but will use the light mode color because it doesn't not know about traitCollections since it is a CALayer subclass. This causes a problem for any component that subclasses `UIControl` and updates its visuals based on state. For instance MDCCard within `setHighlighted` calls `updateBorderColor` which then would call `setBorderColor` on the shapedShadowLayer. Since traitCollection was never involved here the border gets render as it's in a light mode even if it happens to be in a dark mode. Additionally, we may need this for other CGColor things but this will unblock card for now.
### Screenshots
| Before | After |
| - | - |
|||
This PR adds dark mode support to the theming extension for MDCActionSheetController. In order to support dark mode clients will need to set dynamic colors in their color scheme.
There is no change to `mdc_elevationDidChangeBlock` because the elevation on an MDCActionSheetController should never change since it is not a settable property. If we later expose a setter then we will need to add that functionality. Additionally unit test were added but since MDCActionSheetController doesn't allow for subclassing I could not test for traitCollection changes. In order to test this more thoroughly do the steps as follows.
1. Launch MDCCatalog on an iOS 13 simulator.
2. Open the ActionSheet example.
3. Switch between light and dark mode in Xcode 11.
Following the steps above, this should be the result.

Adds an elevation property to MDCBottomSheet and MDCBottomSheet presentation controller. Snapshot test have been added for the MDCBottomSheetControlller.view as well as unit test for all public APIs.
Prework for #8025
Add elevation property and elevationDidChange block to `MDCFlexibleHeaderView`. Elevation will be set in an upcoming PR by `MDCAppBarViewController`.
Closes#8018
Adding dynamic color support to the Ink component.
Ink comprises of multiple MDCInkLayer sublayer instances, and they all should update their colors when the style of the system turns to Dark.
Closes#7871
This change adds a protocol `MDCElevation` for clients to conform to so that their is a consistent API for getting a `UIView` elevation. This is in it's own folder because it can be used as a standalone protocol and is agnostic of ShadowElevations and schemes/Color.
For additional context please see go/material-dark-mode-elevation-support
Closes#7961
MDCFlexibleHeader currently doesn't have any tests related to the shadow layer. This adds tests for that property. Since there are no general flexible header tests I added this within it's own file as all other test files seem specific to other tests.
MDCSnackbarMessageView was previously using UIKit to display its shadows. This is a deviation from the rest of our components. This change updates the implementation so that we can later expose an API for `elevation` so that clients can customize the elevation of the snackbar and get its elevation accordingly. No tests were added because this changes the underlying layer class and snapshot tests were already in place to catch the visual diffs.
Closes#7829
DynamicColor is not only useful inside color scheme class, but also in some other classes (dragon controller) as a utility method. A new UIColor category is created in this PR to facilitate it.