librustc::session : Make cgoptions macro more generic
librustc::session : Make DebuggingOpts use the options! macro
librustc::metadata : Allow passing a string to read_plugin_metadata
librustc::plugin : make PluginLoader usable for loading argument-specified plugins
librustc_driver: Add support for loading plugins via command line (fixes #15446)
libsyntax: add COMMAND_LINE_SP and use it for spans generated from the command line
Add test for -Z extra-plugins
auto merge of #20032 : Manishearth/rust/plugin-loader, r=cmr

`rustc something.rs -L folder_with_plugin_dylib/ -Z extra-plugins=foo` works via this

My way of testing this is by cloning https://github.com/Manishearth/rust-clippy, `cargo build`ing it, and then running `rustc examples/box_vec.rs -L target/ -Z extra-plugins=rust_clippy` after editing out the `exern crate rust_clippy` from `box_vec.rs`

r? @huonw

fixes #15446