Clean up implementation

Now, a static function is used instead of a block variable.
Improve unescaping

Unescaping of double-quoted string parts no longer blindly strips backslashes. Now, escaped double-quote and escaped backslash are unescaped properly, but other backslash-character pairs are left alone. (Previously, backslashes would be blindly removed without caring what character follows.)
Simplified test suite naming
Fix glaring bug and updated tests thereof

As it turns out, a bug in my regex caused shell-splitting to be totally busted (symptom: “quoted strings” don’t have their quotes stripped). This is now fixed.