Change the way hidden elements are handled.

Hiding and then overriding for specific children doesn't work well. We now tag
the content to be hidden explicitly.