Allow lint modes to be used on unused variables and dead assignments
auto merge of #5804 : alexcrichton/rust/issue-3266, r=graydon

This leaves the default lint modes at `warn`, but now the unused variable and dead assignment warnings are configurable on a per-item basis. As described in #3266, this just involved carrying around a couple ids to pass over to `span_lint`. I personally would prefer to keep the `_` prefix as well.

This closes #3266.