Migrate `of` to non-nullable return values, and add `maybeOf`

Summary

Context

Description of change

Migration guide

Timeline

References

Summary

This migration guide describes conversion of code that uses various static of
functions to retrieve information from a context that used to return nullable
values, but now return non-nullable values.

Context

Flutter has a common pattern of allowing lookup of some types of widgets
(typically InheritedWidgets, but also others) using static member
functions that are typically called of.

When non-nullability was made the default, it was then desirable to have the
most commonly used APIs return a non-nullable value. This is because saying
Scrollable.of(context) and then still requiring an ! operator or ? and a
fallback value after that call felt awkward, and was not idiomatic for
non-nullable Dart code.