Add XSL

Resolves issue 1411.

English only. Though we could specify per-language stylesheets later when we find a good way to manage the translations. Progressive enhancement.

cc/ @Kwpolska @ralsina 
What would a readable and more pythonic way look like?