[JRO] Bubble up NullUser to the controller layer

Previously the NullUser was being used in the CanCan ability definition
but not up in the controller or view layer. Why? Meh, dunno. The
`unread_private_topics_count` method in the user object was bombing out
for visitors so the null object was the next best place to put it, and
raise the object's presence up to the user controller.

This caused some issues here and there that are fixed in the rest of
this commit. Primarily where there are AR queries calling on the
user'ish object as part of the query - `where(user: current_user)`
changing to `where(user_id: current_user.id)` ... or things of that
nature ... fixed this.