Stream-based shouldDisplay checking

Closes #9895. 

This moves all the logic for helper "truthiness" checking into a stream-friendly implementation.
Ok, got it. I missed this comment before I edited, I will fix this.

I did consider not subscribing to isTruthy unless it starts out as a boolean, but figured the tiny optimization wasn't worth the risk of a subtle bug if somebody initialized `isTruthy` late.