Render interface

The diff makes it a bit hard to read, but this is where the `render.XML` function begins. We create an `XML` instance (seen in engine.go above), pass it Indent/Prefix from the options (as to not break backwards compat), and render with `r.Render`.

Passing the options with the `XML` instance (as we do with all the instances below) isn't *ideal*, but it's better than defining all of the `Engine`s as `xml *XML`, `json *JSON`, etc. which is what we'd have to do to make extra options/params stick.