Handle unused block local variables in UnusedBlockArgument

They were handled by UselessAssignment until now,
but they are considered a sort of argument
since it can be declared without initial assignment.
Pointing out them as "useless assingment" is a lie.
Refactor underscore-prefixed variable name checking