Move content filtering into model object (LFSContentCollection)

Motivation: This lets us apply the same filtering to both top- and child-level content.