Migration: add primary_commentable id/type to Comments

This will let us show the primary record which a comment is hanging off
It will also let us load all the comments for a Record (including nested
comments) with one query.
Comment: set primary_commentable
Article: add descendant_comments method and test it