Implement flexible target specification

See commit message.
I don't think we feasibly can. `C:\Foo` on Windows. There's also the issue of escaping pathnames.