Add a RenderHeader type class for rendering

All of the header value data structures now have a unified mechanism for
rendering to a ByteString with the RenderHeader type class and the
renderHeader method. This allows quality-marked header values and lists
of header values to render in the appropriate manner as well.

The toList function for the Language type has been renamed to toParts,
which is more specific about its behaviour. The version number has been
bumped accordingly.