Cleanup shared examples code (and a few other things)

@JonRowe this is some more cleanup code from my code audit.  There are still some TODOs but I wanted to get this out there for review.

- [ ] Add 2.99 deprecations. Definitely needed for the removed APIs, potentially needed for the scoping change in 3e7277c9972610312258d820f3e55ddb1e8f48a7.  Thoughts on if it's needed for that?
- [ ] Update the other repos to not use any of the removed APIs. (I suspect the build will fail because of that).
- [ ] Changelog entry for the changes.