Closes https://github.com/flutter/flutter/issues/170456.
There are still some TODOs I'd like to address, but in follow-up PRs:
- Update the `# Framework` sub-sections after #168437 merges
- Add known limitations (i.e. embedder/engine)
- Add best practices (using a feature flag versus just using a
parameter, named constructor, etc)