Components are now a state monad with a map of css elements. At runtime,
css is gathered from the different components without duplication and
rendered. This should provide a scalable solution. Care should be taken
when naming a new component as overlapping names would not be both
rendered.
At the moment, it seems a little hacky: templates from Kit.Templates are
compiled as html in a _templates directory, so that Hakyll can use them.
It seems that I might have to compile twice at times, as templates may
not be cached when I want to apply them. Might have to sort this out, or
it is a happy hack..