Add visit_attribute to Visitor, use it for unused_attribute

The lint was missing a *lot* of cases previously.
The attribute usage lint has separate handling of crate and non-crate attributes, so it wouldn't work well in `visit_attribute`. I've actually been meaning to delete the attribute_usage lint since it's superseded by unused_attribute. Maybe that should just happen now.