Make ExceptionLayoutRenderer more extensible

Right now there's no easy way to tweak how a particular layout token (i.e. Message or Data) is rendered by extending ExceptionLayoutRenderer, because the Append... methods are private static