a lot of refactoring
Hey @adamnemecek! I like the cleanups, but this is going to be hard one to merge in one giant pull request. As you see, it already got some merge conflicts from other PRs... Also, let's not clean up anything in the vendored directory because it makes merging from upstream much harder.
@pereman2 The Self bits here are non-controversial, right? Perhaps @adamnemecek you could make this pull request about that and leave the more controversial parts for later?
I am closing this due to lack of activity and because, as predicted, has lots of merge conflicts already. I suggest sending cleanups in smaller chunks because they're easier to review and merge that way.