Better exception message checking. Improving c9a16d7f715493a5fb14ff4baaefb6f768cbaaa5
Put the always-used `generate_random_model()` into a shared location.
Import directly to avoid having to type out "layout_helpers" every time.
Refactor to share more common things, restore the `rendered_template` property, make it clearer what the template string will actually be and a simpler test for the valid result.

`make_str()` is now the only way to build the template string. It assumes less and allows for flexible variable substitution without confusion of "%" or "{}" brackets.