Implement flexible target specification

See commit message.
Who installs to `/etc/rustc`?