Take 2 - refactoring tests

This simplifies a lot of the abstracted logic that was in `tests/_utils.py`. That code wasn't shared across tests so I pulled it into the test cases where it is used. `stub_rendering` was unused. I also simplified some of the properties used to generate rendered temples.

`tests/utils.py` looks entirely new. I'm sorry for that but I wrote an entirely new file to test `get_layout_template_name` because it appeared untested back when I didn't understand the conventions. It does add a couple new tests though.