crate_id fallout
Lots of shuffling around. Added Cargo support.

To make things easier, changed the link(name) cfg flag to be the inverse, so
that by default we use link(name).