Transpile assetFor inside blockFor in non-nujucks
Transpile assetFor inside blockFor in non-nujucks

When transpiling a layout to ERB the transpiler did not support an
`assetFor` (or `textFor`) inside of a `blockFor` match, as the regular
expressions were run as a single regex OR'd together.

This meant that the first match would be made, but match inside of that
wouldn't be, which meant we couldn't include a `<link>` stylesheet tag
with an asset path inside a `{% block %}`.

Refactor the way the way the regular expressions are applied, to make
them sequential. This allows `assetFor` or `textFor` to be used inside
a `blockFor`, but does not allow nested `blockFor`s. Although that would
be useful, it requires recursive regular expressions, which requires
more work.

This builds a map of matchers, to try and reduce the if/case-style matching
in the previous implementation, using replacer functions to map the matches
to the transpiler methods.

alphagov/govuk_frontend_alpha,alphagov/govuk_frontend_alpha,alphagov/govuk_frontend_alpha