Major Post display bug fixed, categories displayed, minor code cleanup

Retrieving intermediate objects is required to get at a Post's categories and
visibility exceptions.  Unfortunately, I was not using value_lists('...', flat=True),
which leads to undocumented behaviour when you try and shoehorn a VisibilityException
object into an id__in= filter, for example.

Categories (if any) are now displayed per post.

Any files I touched getting the above two tasks done were PEP8-checked.