Don't crash on an unknown username and some refactoring

My recent change to add an issues page surfaced a bug where attempting to visit the user page of a user who is not yet a member (e.g. pullup.io/news/user/not-a-user) would crash the app.

This PR fixes that bug, and also refactors how we add comments and votes to news items to make the code  DRYer and clearer.