add support for /markdown endpoint

notably, this also updates client.Do() to handle non-JSON response bodies by passing an io.Writer as the final argument, v.

-----

I'm not 100% sure where this should go.  For Gitignore, we created a dedicated gitignore.go, along with a `GitignoresService`, though looking at it now I'm thinking we probably should not have.  The GitHub docs list this under "Miscellaneous", which is why I've added it to misc.go, but I've stopped short of creating a `MiscService` and instead am putting this directly on the `Client` struct, similar to how `RateLimit` is done.  All these miscellaneous methods should probably all be consistent, but I'm open to suggestions on what that should be.