Good idea, I finished that about an hour ago. Unfortunately I messed up somewhere while rebasing though, and cannot even force push the fixed & squashed commits for some reason.

This PR turned out a little too large for my taste anyway, so I'll split it into multiple smaller PRs that are easier to handle for everyone, especially myself.