Add a regression test for correct path antiquotation behavior

This broke in Nix 1.6.
Revert the behaviour of antiquoted paths to pre-Nix 1.6

Commit 159e621d1a9c4391b53f3d822109c36931934698 accidentally changed
the behaviour of antiquoted paths, e.g.

  "${/foo}/bar"

used to evaluate to "/nix/store/<hash>-foo/bar" (where /foo gets
copied to the store), but in Nix 1.6 it evaluates to "/foo/bar".  This
is inconsistent, since

  " ${/foo}/bar"

evaluates to " /nix/store/<hash>-foo/bar".  So revert to the old
behaviour.
Add a test for type correctness of antiquotes

Antiquotes should evaluate to strings or paths.  This is usually
checked, except in the case where the antiquote makes up the entire
string, as in "${expr}".  This is optimised to expr, which discards
the runtime type checks / coercions.
Ensure proper type checking/coercion of "${expr}"

Now we only rewrite "${expr}" to expr if expr is a string literal.
two typos
Test string semantics a bit more