First pass at a guide to compiler plugins

@steveklabnik, are you interested in looking this over?
I mentioned it in #16617, but it really should be its own issue, so I opened #17397.