Perform a single pass so the work of doing `m` replacements in a string
of length `n` is O(m + n) instead of O(m * n)
For the yogalogy template this change improves the script munging step
from ~2.5ms to 0.5ms [release] (from ~17ms to 3ms [debug]).
Prepare for adding a second radically different fixture by creating a
module to hold the different fixtures. When I only had one fixture it
was ok to have the module be a single file.