Slightly reorganize clean

Makes it so that impls are next to their struct
Extract crate name and attributes

Crate name extraction is currently broken; it needs an explicit
 #[link(name="foo")]. I couldn't figure out how rustc infers crate name... I
think it just looks at the basename and strips the extension but I'm not
positive.