Hide sections if the content is not present

To make this change slightly easier, I pulled more identical content out
of the type-specific partials. We can always push it back if it ever
does diverge.
Explicitly set layout in HomesController

Rails was warning that the layout macro in ApplicationController would
eventually override the dynamic lookup by controller name, so we must
explicitly define the layout we want when they differ.