Pre-render post detail on server side.

This is an attempt to make page loads faster.and Improve processing by web spiders (#1), readability/pocket, screen readers (#24), and older/non-JS browsers for post detail pages only.

We do this by calling the same code we use to render post details on the client-side, only we do it on the server side using [cheerio](https://github.com/MatthewMueller/cheerio). Everything is actually re-rendered on the client-side once all scripts load, but because the page looks exactly like it did before, the user doesn't notice any change.

A disadvantage is that we actually include the post detail information twice: as a JSON blob and as raw HTML. However, since this content will only be delivered once per session--once the page is loaded, all future navigation is entirely ajax-based--it might not be that big a deal.
The naming here confused me slightly. I assumed the returned object was supposed to be a singleton, whereas it seems to be ensuring the item requested is a singleton on the page? Maybe `ensureSingleton` would be clearer or something.