Slightly refactor how unpackers are applied

Fixes some weird freezes, e.g

    {"url":"{%%}{%%}"}

got detected by urlencoded script, but, being unable to urldecode, fell
into an infinite loop.