Ensure this.shadowRoot isn't null

There are some scenarios in which you aren't immediately providing a  `customEffect` (because it's being set dynamically later) and there are no `<core-animation-keyframe>` children, so there won't be a `shadowRoot`. This prevents `this.shadowRoot.querySelectorAll()` from throwing a runtime exception.