Work on improving cache for verticals [ci skip]

There are a few minor problems that need to be fixed before this can be merged in:

* Through-associations that aren't directly attached to the category aren't breaking the cache. For example, adding the "Money" Issue to an article that doesn't have a "Politics" category won't invalidate the cache on the vertical, because touching the issue (which it does) doesn't also touch that issue's categories, since callback aren't fired on a touch.

* Touching of category/issues happens even with unpublished articles, but we should only be concerned about published articles. This may mean using a custom `touch` solution, rather than the one built-in to Rails.