Add RenderTo() for Rendering to an io.Writer

Here's RenderTo() in it's own pull request. I deleted the _really_ old fork I had, but I kept a local backup.

As part of implementing RenderTo() I also added several places in the rendering methods that can cause errors to be returned, specifically when writing to the io.Writer. With just a bytes.Buffer it's not a problem to not check for errors as the documentation says it's always nil, but with an unknown io.Writer I thought it might be better to check.

I also accidentally ran gofmt, so the diff wound up being _quite_ a bit longer than the actual changes to the code, which were fairly minor.